通知消息通过Push Kit通道直接下发可在终端设备的通知中心、锁屏、横幅等展示用户点击后拉起应用。一、通知消息通知消息分为两大类别类别提醒方式消息展示位置推送数量服务与通讯锁屏、铃声、振动通知中心系统管控资讯营销静默通知仅在通知中心更多通知每日2条或5重要若未申请通知消息自分类权益推送的通知消息默认为资讯营销类消息若仅需发送资讯营销类消息则无需申请通知消息自分类权益二、频控规则阶段规则调测阶段每个项目每日全网最多可推送1000条测试消息需设置testMessage: true正式发布单设备单应用受设备消息频控限制系统根据场景管控资讯营销类根据应用类型分为2条或5条/日三、支持设备设备类型支持版本Phone、Tablet、PC/2in1支持Wearable5.1.0(18)TV5.1.1(19)四、开发步骤4.1 客户端获取Push Token4.2 客户端请求通知授权import { notificationManager } from kit.NotificationKit; notificationManager.requestEnableNotification(this.context).then(() { hilog.info(0x0000, testTag, RequestEnableNotification success); }).catch((err: BusinessError) { hilog.error(0x0000, testTag, RequestEnableNotification failed, code: ${err.code}); });4.3 客户端配置skills标签确保点击消息可以正常跳转应用页面详见下文“点击消息动作”。4.4 服务端调用REST API推送通知消息请求URLV3版本支持HarmonyOS Next/5.xPOST https://push-api.cloud.huawei.com/v3/[projectId]/messages:send请求示例{ payload: { notification: { category: MARKETING, title: 普通通知标题, body: 普通通知内容, clickAction: { actionType: 0 }, foregroundShow: true, notifyId: 12345 } }, target: { token: [MAMzLg********lPW] }, pushOptions: { testMessage: true, ttl: 86400 } }参数参数说明projectId项目ID在AGC“项目设置”获取AuthorizationJWT格式字符串push-type0表示通知消息category消息类型MARKETING为资讯营销actionType0进入首页1进入内页testMessagetrue表示测试消息每日1000条ttl消息缓存时间秒notifyId自定义消息标识相同ID可实现新消息覆盖旧消息五、点击消息动作5.1 点击进入应用首页skills标签配置{ skills: [ { entities: [entity.system.home], actions: [ohos.want.action.home] // 不要配置uris } ] }请求体中设置actionType: 05.2 点击进入应用内页方式一通过actions匹配{ skills: [ { actions: [com.test.action] } ] }方式二通过uris匹配{ skills: [ { actions: [], uris: [ { scheme: https, host: www.xxx.com, port: 8080, path: push/test } ] } ] }请求体中设置clickAction: { actionType: 1, action: com.test.action, uri: https://www.xxx.com:8080/push/test, data: {testKey: testValue} }注意actionType1时uri和action至少填写一个若都填写优先匹配action。若都未匹配则进入首页。六、数据传递服务端推送时携带data字段客户端在onCreate或onNewWant中获取onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { const value want.parameters?.[testKey]; // value: testValue }七、通知消息样式7.1 普通通知必须携带title与body字段文本最多显示3行。7.2 通知角标不支持Wearable/TVbadge: { addNum: 1, // 累加数字 setNum: 99 // 实际显示数字优先级更高 }注意打开应用或点击通知不会清理角标需调用setBadgeNumber(0)清理。7.3 通知大图标不支持Wearableimage: https://***.png支持PNG、JPG、JPEG、BMP、WEBP图片总字节数不超过192KB。7.4 多行文本样式不支持Wearablestyle: 3, inboxContent: [ 1. 通知栏消息样式, 2. 通知栏消息提醒方式和展示方式, 3. 通知栏消息语言本地化 ]八、账号校验功能8.1 账号类型类型说明华为账号通过华为账号映射的唯一匿名标识应用账号应用自己的账号映射的匿名标识8.2 绑定/解绑接口// 绑定 pushService.bindAppProfileId(pushCommon.AppProfileType.PROFILE_TYPE_APPLICATION_ACCOUNT, profileId); // 解绑 pushService.unbindAppProfileId(pushCommon.AppProfileType.PROFILE_TYPE_APPLICATION_ACCOUNT);8.3 服务端推送profileId: 111***222九、应用在前台时处理通知消息9.1 服务端设置foregroundShow: false // 应用在前台时不展示通知消息9.2 客户端接收消息配置skills标签{ actions: [action.ohos.push.listener] }接收消息pushService.receiveMessage(DEFAULT, this, (payload) { const data: string payload?.data; // 业务处理 });十、自定义铃声10.1 客户端将铃声文件如alert.mp3放在/resources/rawfile路径下。10.2 服务端sound: alert.mp3, soundDuration: 10 // 单位秒范围1-60注意category取值为MARKETING时不支持自定义铃声。
鸿蒙 推送:消息发送与接受(五)
通知消息通过Push Kit通道直接下发可在终端设备的通知中心、锁屏、横幅等展示用户点击后拉起应用。一、通知消息通知消息分为两大类别类别提醒方式消息展示位置推送数量服务与通讯锁屏、铃声、振动通知中心系统管控资讯营销静默通知仅在通知中心更多通知每日2条或5重要若未申请通知消息自分类权益推送的通知消息默认为资讯营销类消息若仅需发送资讯营销类消息则无需申请通知消息自分类权益二、频控规则阶段规则调测阶段每个项目每日全网最多可推送1000条测试消息需设置testMessage: true正式发布单设备单应用受设备消息频控限制系统根据场景管控资讯营销类根据应用类型分为2条或5条/日三、支持设备设备类型支持版本Phone、Tablet、PC/2in1支持Wearable5.1.0(18)TV5.1.1(19)四、开发步骤4.1 客户端获取Push Token4.2 客户端请求通知授权import { notificationManager } from kit.NotificationKit; notificationManager.requestEnableNotification(this.context).then(() { hilog.info(0x0000, testTag, RequestEnableNotification success); }).catch((err: BusinessError) { hilog.error(0x0000, testTag, RequestEnableNotification failed, code: ${err.code}); });4.3 客户端配置skills标签确保点击消息可以正常跳转应用页面详见下文“点击消息动作”。4.4 服务端调用REST API推送通知消息请求URLV3版本支持HarmonyOS Next/5.xPOST https://push-api.cloud.huawei.com/v3/[projectId]/messages:send请求示例{ payload: { notification: { category: MARKETING, title: 普通通知标题, body: 普通通知内容, clickAction: { actionType: 0 }, foregroundShow: true, notifyId: 12345 } }, target: { token: [MAMzLg********lPW] }, pushOptions: { testMessage: true, ttl: 86400 } }参数参数说明projectId项目ID在AGC“项目设置”获取AuthorizationJWT格式字符串push-type0表示通知消息category消息类型MARKETING为资讯营销actionType0进入首页1进入内页testMessagetrue表示测试消息每日1000条ttl消息缓存时间秒notifyId自定义消息标识相同ID可实现新消息覆盖旧消息五、点击消息动作5.1 点击进入应用首页skills标签配置{ skills: [ { entities: [entity.system.home], actions: [ohos.want.action.home] // 不要配置uris } ] }请求体中设置actionType: 05.2 点击进入应用内页方式一通过actions匹配{ skills: [ { actions: [com.test.action] } ] }方式二通过uris匹配{ skills: [ { actions: [], uris: [ { scheme: https, host: www.xxx.com, port: 8080, path: push/test } ] } ] }请求体中设置clickAction: { actionType: 1, action: com.test.action, uri: https://www.xxx.com:8080/push/test, data: {testKey: testValue} }注意actionType1时uri和action至少填写一个若都填写优先匹配action。若都未匹配则进入首页。六、数据传递服务端推送时携带data字段客户端在onCreate或onNewWant中获取onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { const value want.parameters?.[testKey]; // value: testValue }七、通知消息样式7.1 普通通知必须携带title与body字段文本最多显示3行。7.2 通知角标不支持Wearable/TVbadge: { addNum: 1, // 累加数字 setNum: 99 // 实际显示数字优先级更高 }注意打开应用或点击通知不会清理角标需调用setBadgeNumber(0)清理。7.3 通知大图标不支持Wearableimage: https://***.png支持PNG、JPG、JPEG、BMP、WEBP图片总字节数不超过192KB。7.4 多行文本样式不支持Wearablestyle: 3, inboxContent: [ 1. 通知栏消息样式, 2. 通知栏消息提醒方式和展示方式, 3. 通知栏消息语言本地化 ]八、账号校验功能8.1 账号类型类型说明华为账号通过华为账号映射的唯一匿名标识应用账号应用自己的账号映射的匿名标识8.2 绑定/解绑接口// 绑定 pushService.bindAppProfileId(pushCommon.AppProfileType.PROFILE_TYPE_APPLICATION_ACCOUNT, profileId); // 解绑 pushService.unbindAppProfileId(pushCommon.AppProfileType.PROFILE_TYPE_APPLICATION_ACCOUNT);8.3 服务端推送profileId: 111***222九、应用在前台时处理通知消息9.1 服务端设置foregroundShow: false // 应用在前台时不展示通知消息9.2 客户端接收消息配置skills标签{ actions: [action.ohos.push.listener] }接收消息pushService.receiveMessage(DEFAULT, this, (payload) { const data: string payload?.data; // 业务处理 });十、自定义铃声10.1 客户端将铃声文件如alert.mp3放在/resources/rawfile路径下。10.2 服务端sound: alert.mp3, soundDuration: 10 // 单位秒范围1-60注意category取值为MARKETING时不支持自定义铃声。