鴻蒙消息推送對接

對接流程:

  • 開通推送服務(wù)
  • 鴻蒙鑒權(quán)令牌申請
  • 集成推送
  • api 推送mock
  • 華為推送注意事項
  • 攜程商旅鴻蒙版證書管理配置
  • 攜程商旅推送mock

一、開通推送服務(wù)

開通前,保證項目已創(chuàng)建。

AppGallery——我的項目——增長——推送服務(wù)——立即開通

二、鴻蒙鑒權(quán)令牌申請

1.創(chuàng)建API 服務(wù) HMS API服務(wù)申請流程

2.下載API服務(wù)證書 API 證書配置 及下載

image.png

注意:已有項目情況下,無需再重復(fù)創(chuàng)建項目

image.png

而是直接選擇已存在的項目
如果選錯項目,會導(dǎo)致Auth不匹配,推送鑒權(quán)失敗。

三、集成推送
1.配置client id 在項目模塊級別下的src/main/module.json5(例如entry/src/main/module.json5)中,新增metadata并配置client_id,如下所示:

"module": {
  "name": "entry",
  "type": "xxx",
  "description": "xxxx",
  "mainElement": "xxxx",
  "deviceTypes": [],
  "pages": "xxxx",
  "abilities": [],
  // 配置如下信息
  "metadata": [
    {
      "name": "client_id",
      // 配置為步驟1中獲取的Client ID
      "value": "xxxxxx" 
    }
  ]
}

2.獲取pushToken

import { pushService } from '@kit.PushKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { UIAbility, AbilityConstant, Want } from '@kit.AbilityKit';
 
export default class EntryAbility extends UIAbility {
  // 入?yún)?want 與 launchParam 并未使用,為初始化項目時自帶參數(shù)
  async onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): Promise<void> {
    // 獲取Push Token
    try {
      const pushToken: string = await pushService.getToken();
      hilog.info(0x0000, 'testTag', 'Get push token successfully: %{public}s', pushToken);
    } catch (err) {
      let e: BusinessError = err as BusinessError;
      hilog.error(0x0000, 'testTag', 'Get push token catch error: %{public}d %{public}s', e.code, e.message);
    }
    // 上報Push Token
  }
}

3.通知權(quán)限申請

notificationManager.requestEnableNotification().then(() => {
    console.info(`requestEnableNotification success`);
     
  }).catch((err:BusinessError) => {
 
 
  });

4.申請推送自分類,申請完成后,通知服務(wù)端做鴻蒙自分類字段適配。根據(jù)鴻蒙設(shè)備識別標(biāo)識


image.png

5.將推送憑證配置文件放置到項目中,可隨時查看防丟失。

注意:檢查憑證配置中project_id和AppGallery中的項目id是否一致,若不一致,則配置錯誤(可能是步驟二中項目選擇錯誤)。

四、華為推送服務(wù)API mock

Auth 申請 示例代碼

image.png

四、鴻蒙推送注意事項 skill 標(biāo)簽設(shè)置規(guī)則 必須要外層【】 否則收不到消息

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容