推送管理
提示
鸿蒙的推送已经整合到鸿蒙系统中,在正确的获取到推送 token 前的所有步骤,您都需在鸿蒙平台操作。如有疑问,可在鸿蒙平台提工单咨询。
鸿蒙管理后台配置推送
客户端配置推送,需要先确保鸿蒙后台推送配置和融云后台推送配置已完成。 您也可参考鸿蒙的推送服务文档。
APP 申请通知权限
App 申请 通知权限,可以在手机>设置>应用和服务>应用管理 中查看 APP 的通知权限。 如果没有申请通知权限,收到的推送无法在通知栏出现。
详情请参考鸿蒙的请求通知授权文档。
APP 获取推送 token
鸿蒙系统已经内置获取推送 token 的逻辑,不需要像 Android 平台一样依赖各个手机厂商的推送 SDK
获取推送 token 失败时,请根据错误码对照鸿蒙ArkTS API 错误进行排查。如果您不确定具体的错误,可以向鸿蒙提工单咨询具体的报错信息。
参考:获取鸿蒙推送 token
TypeScript
// 在 EntryAbility.ets 中
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
hilog.info(0x0000, 'IM-ArkTS', 'Get message data successfully: %{public}s', JSON.stringify(want.parameters));
hilog.info(0x0000, 'IM-ArkTS', '%{public}s', 'Ability onCreate');
pushService.getToken((error: BusinessError, token: string) => {
hilog.info(0x0000, 'IM-ArkTS', 'getPushToken error:%{public}s token:%{public}s', error, token);
if (token) {
// 设置推送 token
IMEngine.getInstance().setPushToken(token);
} else {
// 获取推送 token 错误,根据 code 值请向鸿蒙提工单咨询具体原因
let code = error.code;
}
});
}
IMLib 设置推送 token
在正常获取推送 token 后,把推送 token 设置给 IMLib
接口原型
TypeScript
// 见 IMEngine.ts
/**
* 设置鸿蒙推送 token
* ```
* 1. SDK 初始化之前设置:SDK 会将推送 token 缓存,连接成功后上报
* 2. SDK 初始化之后连接之前设置:连接成功后上报
* 3. SDK 连接成功后设置:SDK 立即上报
* ```
* @param pushToken 推送 token
*/
public setPushToken(pushToken: string): void