接入与基础功能
系统API要求
鸿蒙NEXT API12及以上stage模式的普通应用,暂不支持元服务
快速开始
安装sdk
在项目的根目录下执行如下命令
ohpm install @umeng/common --registry=https://ohpm.openharmony.cn/ohpm
ohpm install @umeng/analytics --registry=https://ohpm.openharmony.cn/ohpm
ohpm install @umeng/apm --registry=https://ohpm.openharmony.cn/ohpmcommon版本需要在1.1.1及以上
集成
在项目的
AppScope/resources/rawfile目录下新增一个配置文件umconfig.json

内容如下
{
"appKey": "你的apppkey",
"channel": "你的渠道"
}在应用模块目录下,添加
abilityStage工程文件,例如entry/src/main/ets/abilityStage/MyAbilityStage.ets,具体位置如截图
参考代码如下
import AbilityStage from '@ohos.app.ability.AbilityStage';
import { preInit, InternalPlugin, setLogEnabled, init } from '@umeng/analytics';
import { ApmPlugin } from '@umeng/apm';
setLogEnabled(true); // 开发时,打开调试日志,可观察sdk是否集成成功
export default class MyAbilityStage extends AbilityStage {
onCreate() {
preInit({
context: this.context.getApplicationContext(),
plugins: [new InternalPlugin(), new ApmPlugin()]
});
init(); // 在用户同意隐私政策后再调用此方法
}
}在模块的的
module.json5文件中添加srcEntry,指向abilityStage文件的地址

在模块的module.json5文件中添加权限声明
"requestPermissions": [
{
"name": "ohos.permission.APP_TRACKING_CONSENT",
"reason": "$string:reason", // 如果IDE提示错误,需自行在entry/src/main/resources/base/element/string.json,中添加对应信息
"usedScene": {}
},
{
"name": "ohos.permission.INTERNET"
},
{
"name": "ohos.permission.GET_NETWORK_INFO"
},
],注意上述代码中,"$string:reason"为用户自定义内容,如果IDE提示"$string:reason",错误,需自行在entry/src/main/resources/base/element/string.json文件中添加对应信息,一个简单的示范如下
{
"string": [
{
"name": "reason",
"value": "采集oaid信息用于崩溃、性能分析"
},
]
}
在适当位置(preInit方法调用之后),经用户授权同意隐私政策后调用init方法,才会开始日志的采集和传输
方法说明
preInit(context:common.ApplicationContext,plugins:[internalPlugin,ApmPlugin])
预初始化,需要在abilityStage的onCreate方法内调用
init()
用户同意隐私政策后调用,方法调用后才会进行采集和日志传输,需要开发者自行记录用户是否同意了隐私政策,并在判断用户同意隐私政策时才可调用init方法
setLogEnabled(enable:boolean)
日志开关,默认关闭
ApmPlugin(config?: ApmConfig)
创建ApmPlugin实例,可以通过配置项控制APM行为
参数说明:
config.enableJSCatch: 是否启用JS异常捕获,默认为true,js异常不会崩溃退出,日志正常上报,设置为false时,js异常会崩溃退出,日志正常上报
config.runInWorker: 是否在worker线程中运行APM监控,默认为true,无特殊情况不建议修改,worker线程运行apm逻辑可最大程度降低对UI线程的影响
合规设置示范(默认采集,可通过设置关闭采集)
- disableScreen 禁用屏幕分辨率信息
- disableOsVersion 禁用OS版本信息
- disableDeviceModel 禁用设备型号信息
- disableMarketName 禁用设备市场名称信息
- disableDeviceType 禁用设备类型信息import AbilityStage from '@ohos.app.ability.AbilityStage';
import { preInit, InternalPlugin, setLogEnabled, init } from '@umeng/analytics';
import { ApmPlugin } from '@umeng/apm';
setLogEnabled(true); // 开发时,打开调试日志,可观察sdk是否集成成功
export default class MyAbilityStage extends AbilityStage {
onCreate() {
preInit({
disableScreen: true,// 禁用屏幕分辨率信息
disableOsVersion: true, // 禁用OS版本信息
disableDeviceModel: true, // 禁用设备型号信息
disableMarketName: true, // 禁用设备市场名称信息
disableDeviceType: true, // 禁用设备类型信息
context: this.context.getApplicationContext(),
plugins: [new InternalPlugin(), new ApmPlugin({})]
});
init(); // 在用户同意隐私政策后再调用此方法
}
}