对接流程:
- 开通推送服务
- 鸿蒙鉴权令牌申请
- 集成推送
- api 推送mock
- 华为推送注意事项
- 携程商旅鸿蒙版证书管理配置
- 携程商旅推送mock
一、开通推送服务
开通前,保证项目已创建。
AppGallery——我的项目——增长——推送服务——立即开通
二、鸿蒙鉴权令牌申请
1.创建API 服务 HMS API服务申请流程
2.下载API服务证书 API 证书配置 及下载

image.png
注意:已有项目情况下,无需再重复创建项目

image.png
而是直接选择已存在的项目
如果选错项目,会导致Auth不匹配,推送鉴权失败。
三、集成推送
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 {
// 入参 want 与 launchParam 并未使用,为初始化项目时自带参数
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.通知权限申请
notificationManager.requestEnableNotification().then(() => {
console.info(`requestEnableNotification success`);
}).catch((err:BusinessError) => {
});
4.申请推送自分类,申请完成后,通知服务端做鸿蒙自分类字段适配。根据鸿蒙设备识别标识

image.png
5.将推送凭证配置文件放置到项目中,可随时查看防丢失。
注意:检查凭证配置中project_id和AppGallery中的项目id是否一致,若不一致,则配置错误(可能是步骤二中项目选择错误)。
四、华为推送服务API mock
Auth 申请 示例代码

image.png
四、鸿蒙推送注意事项 skill 标签设置规则 必须要外层【】 否则收不到消息