HarmonyOS 快速接入
最近更新:2024-04-25
展开全部

HarmonyOS 快速接入

本文旨要引导用户快速集成推送服务,详细集成步骤参考 SDK 集成指南厂商参数申请指南

SDK 下载详见 资源下载

添加工程配置

配置har

entry 模块下的 oh-package.json5 配置

说明:关联 jpush-hmos-x.x.x-release.har,如,你复制 har 到 entry/hars/ 目录下,那么在 entry 模块下的 oh-package.json5 文件添加

"dependencies": { "jg_harmony_har": "./hars/jpush-hmos-x.x.x-release.har" //这里的路径是你存放jpush-hmos-x.x.x-release.har的位置 }
          "dependencies": {
    "jg_harmony_har": "./hars/jpush-hmos-x.x.x-release.har" //这里的路径是你存放jpush-hmos-x.x.x-release.har的位置
}

        
此代码块在浮窗中显示

client_id 配置

entry 模块下的 module.json5 文件配置。

说明:

在本地工程配置 client_id, 在 entry 模块下的 module.json5 文件添加

"module": { "metadata": [ { "name": "client_id", "value": "你的id" } ] }
          "module": {
    "metadata": [
        {
            "name": "client_id",
            "value": "你的id"
        }
    ]
}

        
此代码块在浮窗中显示

签署配置

在本地工程配置签署,如图

包名配置

在 AppScope 工程下的 app.json5 文件添加

{ "app": { "bundleName": "你的包名", } }
          {
  "app": {
    "bundleName": "你的包名",
  }
}

        
此代码块在浮窗中显示

appKey 配置

appKey 需代码配置,需要在 AbilityStage 内配置,需在 init 之前配置。

export default class MyAbilityStage extends AbilityStage { onCreate() { JPushInterface.setAppKey("你的appKey") //在init之前调用 } }
          export default class MyAbilityStage extends AbilityStage {
  onCreate() {
    JPushInterface.setAppKey("你的appKey") //在init之前调用
  }
}

        
此代码块在浮窗中显示

通知跳转页配置

entry 模块下的 module.json5 文件配置。

{ ... "exported": true, "skills": [ { "actions": [""], //actions一定要配置,没有可以配置空字符串 "uris": [ { "scheme": "你的scheme", "host": "你的host", "port": "你的port", "path": "你的path" } ] } ] }
                {
      ...
        "exported": true,
        "skills": [
          {
            "actions": [""], //actions一定要配置,没有可以配置空字符串
            "uris": [
              {
                "scheme": "你的scheme",
                "host": "你的host",
                "port": "你的port",
                "path": "你的path"
              }
            ]
          }
        ]
      }

        
此代码块在浮窗中显示

申请打开通知开关

在首页申请

export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { notificationManager.requestEnableNotification().then(() => { hilog.info(0x0000, TAG, '%{public}s', `requestEnableNotification success`); }).catch((err: Base.BusinessError) => { hilog.error(0x0000, TAG, '%{public}s', `requestEnableNotification failed, code is ${err.code}, message is ${err.message}`); }); } }
          export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    notificationManager.requestEnableNotification().then(() => {
      hilog.info(0x0000, TAG, '%{public}s', `requestEnableNotification success`);
    }).catch((err: Base.BusinessError) => {
      hilog.error(0x0000, TAG, '%{public}s', `requestEnableNotification failed, code is ${err.code}, message is ${err.message}`);
    });
  }
}

        
此代码块在浮窗中显示

初始化推送服务

  • 在 init 之前要先设置 appKey
  • 在 init 之前要先设置接收回调信息类
export default class MyAbilityStage extends AbilityStage { onCreate() { JPushInterface.setCallBackMsg(继承CallBackMsg的实体类)//接收回调信息//在init之前调用 JPushInterface.setAppKey("你的appKey")//在init之前调用 JPushInterface.init(this.context.getApplicationContext()) } }
          export default class MyAbilityStage extends AbilityStage {
  onCreate() {
    JPushInterface.setCallBackMsg(继承CallBackMsg的实体类)//接收回调信息//在init之前调用
    JPushInterface.setAppKey("你的appKey")//在init之前调用
    JPushInterface.init(this.context.getApplicationContext())
  }
}

        
此代码块在浮窗中显示

配置权限(可选)

可选,为了更精准推送,申请结束后再调用init初始化接口

配置文件权限声明

配置文件权限声明, 在 entry 模块下的 src/main/module.json5 文件添加

{ "module": { "requestPermissions": [ { "name": "ohos.permission.APP_TRACKING_CONSENT", "reason": "$string:reason", "usedScene": { "abilities": [ "EntryAbility" //一般要用首页 ], "when": "always" } } ] } }
          {
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.APP_TRACKING_CONSENT",
        "reason": "$string:reason",
        "usedScene": {
          "abilities": [
            "EntryAbility" //一般要用首页
          ],
          "when": "always"
        }
      }
    ]
  }
}

        
此代码块在浮窗中显示

向用户申请授权

向用户申请授权,在首页 EntryAbility 中申请,然后再初始化,如:

const permissions: Array<Permissions> = ['ohos.permission.APP_TRACKING_CONSENT']; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { let context:Context = this.context; let atManager:abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager(); atManager.requestPermissionsFromUser(context, permissions).then((data: PermissionRequestResult) => { // 授权成功 //然后初始化 JPushInterface.init(this.context.getApplicationContext()) }).catch((err: BusinessError) => { //然后初始化 JPushInterface.init(this.context.getApplicationContext()) }) }
          const permissions: Array<Permissions> = ['ohos.permission.APP_TRACKING_CONSENT'];
export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    let context:Context = this.context;
    let atManager:abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
    atManager.requestPermissionsFromUser(context, permissions).then((data: PermissionRequestResult) => {
      // 授权成功 //然后初始化
      JPushInterface.init(this.context.getApplicationContext())
    }).catch((err: BusinessError) => {
      //然后初始化
      JPushInterface.init(this.context.getApplicationContext())
    })
}

        
此代码块在浮窗中显示
  • 获取日志中的 registrationId,并在极光控制台 创建推送 体验推送服务。
  • 推送完成后,你可以在 推送历史 中查看推送状态、推送通道、送达率等详细数据。
文档内容是否对您有帮助?

Copyright 2011-2022, jiguang.cn, All Rights Reserved. 粤ICP备12056275号-13 深圳市和讯华谷信息技术有限公司

在文档中心打开