對接流程:
- 開通推送服務(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ī)則 必須要外層【】 否則收不到消息