![](https://s5-media.51cto.com/ost/pc/static/noavatar.gif)
回复
HiAppEvent为OpenHarmony应用提供事件打点接口,用于帮助应用记录在运行过程中发生的故障信息、统计信息、安全信息、用户行为信息,以支撑开发者分析应用的运行情况。
图 1 HiAppEvent架构图
/base/hiviewdfx/hiappevent # hiappevent部件代码
├── frameworks # 框架代码
│ └── native # 打点接口的native实现代码
├── interfaces # 对外接口存放目录
│ └── js # js接口
│ └── innerkits # js接口内部实现代码
│ └── napi # 基于napi实现的js接口代码
依赖 Clang 编译器(Clang 8.0.0 )及以上,依赖C++11版本及以上。
表 1 Js打点接口介绍
模块 | 方法 | 描述 |
---|---|---|
hiappevent | write(string eventName, EventType type, any… keyValues, function callback) | 接口功能:应用事件异步打点方法。输入参数:eventName:事件名称。type:事件类型。keyValues:事件参数键值对,为变长参数类型。callback:回调函数,可以在回调函数中处理接口返回值。返回值为0表示事件参数校验成功,事件正常异步写入事件文件;大于0表示事件存在异常参数,事件在忽略异常参数后再异步写入事件文件;小于0表示事件校验失败,不执行事件异步打点操作。 |
hiappevent | writeJson(string eventName, EventType type, object jsonObj, function callback) | 接口功能:应用事件异步打点方法。输入参数:eventName:事件名称。type:事件类型。keyValues:事件参数键值对,为Json对象类型。callback:回调函数,可以在回调函数中处理接口返回值。返回值为0表示事件参数校验成功,事件正常异步写入事件文件;大于0表示事件存在异常参数,事件在忽略异常参数后再异步写入事件文件;小于0表示事件校验失败,不执行事件异步打点操作。 |
Js接口实例
源代码开发
引入模块:
import hiappevent from '@ohos.hiappevent'
应用执行事件打点
// callback方式
hiappevent.write("test_event", hiappevent.EventType.FAULT, "int_data", 100, "str_data", "strValue", (err, value) => {
if (err) {
// 事件写入异常:事件存在异常参数或者事件校验失败不执行写入
console.error(`failed to write event because ${err.code}`);
return;
}
// 事件写入正常
console.log(`success to write event: ${value}`);
});
// Promise方式
hiappevent.write("test_event", hiappevent.EventType.FAULT, "int_data", 100, "str_data", "strValue")
.then((value) => {
// 事件写入正常
console.log(`success to write event: ${value}`);
}).catch((err) => {
// 事件写入异常:事件存在异常参数或者事件校验失败不执行写入
console.error(`failed to write event because ${err.code}`);
});
// callback方式
hiappevent.writeJson("test_event", hiappevent.EventType.FAULT, {"int_data":100, "str_data":"strValue"}, (err, value) => {
if (err) {
// 事件写入异常:事件存在异常参数或者事件校验失败不执行写入
console.error(`failed to write event because ${err.code}`);
return;
}
// 事件写入正常
console.log(`success to write event: ${value}`);
});
// Promise方式
hiappevent.writeJson("test_event", hiappevent.EventType.FAULT, {"int_data":100, "str_data":"strValue"})
.then((value) => {
// 事件写入正常
console.log(`success to write event: ${value}`);
}).catch((err) => {
// 事件写入异常:事件存在异常参数或者事件校验失败不执行写入
console.error(`failed to write event because ${err.code}`);
});
DFX子系统
hiviewdfx_hiview
hiviewdfx_hilog
hiviewdfx_hiappevent
hiviewdfx_hisysevent
hiviewdfx_faultloggerd
hiviewdfx_hilog_lite
hiviewdfx_hievent_lite
hiviewdfx_hiview_lite