跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

接入与基础功能

系统API要求

鸿蒙NEXT API12及以上stage模式的普通应用,暂不支持元服务

快速开始

安装sdk

  1. 在项目的根目录下执行如下命令

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/ohpm
重要

common版本需要在1.1.1及以上

集成

  1. 在项目的AppScope/resources/rawfile目录下新增一个配置文件umconfig.json

image

内容如下

{
  "appKey": "你的apppkey",
  "channel": "你的渠道"
}
  1. 在应用模块目录下,添加abilityStage工程文件,例如entry/src/main/ets/abilityStage/MyAbilityStage.ets,具体位置如截图image

参考代码如下

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(); // 在用户同意隐私政策后再调用此方法
  }
}
  1. 在模块的的module.json5文件中添加 srcEntry ,指向abilityStage文件的地址

image

  1. 在模块的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信息用于崩溃、性能分析"
    },
  ]
}

image

  1. 在适当位置(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(); // 在用户同意隐私政策后再调用此方法
  }
}