跳转到主要内容
PRODUCT DOCUMENTS

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

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

快速开始

一、安装SDK

在项目的根目录下执行如下四个命令,@umeng/common确保v1.0.24版本及以上。

ohpm install @umeng/common --registry=https://ohpm.openharmony.cn/ohpm
ohpm install @umeng/analytics --registry=https://ohpm.openharmony.cn/ohpm
ohpm install @umeng/utunnel --registry=https://ohpm.openharmony.cn/ohpm
ohpm install @umeng/push --registry=https://ohpm.openharmony.cn/ohpm

二、集成SDK

1. 前往友盟消息推送平台创建鸿蒙应用,输入你的应用包名,创建应用后得到AppKey和Umeng Message Secret。

image

示例图

image

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

image

内容如下

{
  "appKey": "你的apppkey", // 注意:appkey必须和你的应用包名对应正确   
  "channel": "你的渠道"     // 开发者自定义命名渠道 
}

3. 在应用模块目录下,添加abilityStage工程文件,例如entry/src/main/ets/abilityStage/MyAbilityStage.ets,具体位置如下图

image

文件内容如下

// entry/src/main/ets/abilityStage/MyAbilityStage.ets
import AbilityStage from '@ohos.app.ability.AbilityStage';
import { init, preInit, InternalPlugin, setLogEnabled, onEventObject } from '@umeng/analytics';
import { PushPlugin } from "@umeng/push";

export default class MyAbilityStage extends AbilityStage {
  onCreate() {
    preInit({
      context: this.context.getApplicationContext(),
      enableLog: true,  // 开发时,打开调试日志,可观察sdk是否集成成功
      plugins: [new InternalPlugin(), new PushPlugin({
        // 注意:appMessageSecret必须和你的应用包名对应正确 
        appMessageSecret: "你在友盟push后台创建应用得到的Umeng Message Secret值" 
      })]
    });
    // 在用户同意隐私政策后再调用init方法。
    // 注意:init方法会注册推送的长连接通道,会进行采集和日志传输网络传输。
    init();
  }
}

4. 在模块的的module.json5文件中添加 srcEntry ,指向abilityStage文件的地址

image

5. 在模块的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

6. 注意在适当位置preInit方法调用之后,经用户授权同意隐私政策后调用init方法,才会开始日志的采集和传输。

三、集成验证

1. 添加初始化回调方法,在需要使用消息推送的entryability中增加如下配置,初始化回调获得device token即表示集成成功。

注意当有多个EntryAbility时,要同样添加接收或上报的方法。

// entry/src/main/ets/entryability/EntryAbility.ets
import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { PushAgent, MsgContent } from '@umeng/push';

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
    // 应用需要获取用户授权才能发送通知,v1.0.14版本支持。可选 
    // 调用此方法,弹窗让用户选择是否允许发送通知,仅弹出一次,后续再次调用此方法时,则不再弹窗。
    PushAgent.enableNotification(this.context, (res: Record<string, string>) => {
      console.log('通知是否允许', JSON.stringify(res));
    });

    // 消息推送初始化回调,成功即可得到data.data返回值,即device token。
    PushAgent.initCallback((data: Record<string, string>) => {
      console.log('消息推送初始化', JSON.stringify(data));
    });
  }
};

四、接入完成

成功获取到device token后可在友盟消息推送后台中创建通知消息,选择下图目标人群,即可收到消息通知。

注意示例消息成功接收后,请前往集成文档,完善初始化方法及自定义功能方法。

image