鸿蒙 消息推送服务:使用入门(一)

开发中,消息推送是提升用户活跃度的重要方式。Push Kit(推送服务)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道。

一、Push Kit 推送

优势 说明
稳定的消息发送通道 通过系统级长连接,即使应用进程不存在,也能实时推送消息
丰富的消息呈现样式 支持文本样式、通知大图标样式、多行文本样式、角标样式等多种展示方式
灵活的场景化消息 支持应用内通话消息、语音播报消息、后台消息等场景化消息

推送消息在终端设备上的显示场景包括:通知中心、锁屏、横幅、桌面图标角标与通知图标。

二、推送消息类型

消息类型 说明 常见场景
通知消息 Push Kit直接下发,在通知中心、锁屏、横幅等展示,用户点击后拉起应用 行程提醒、账号动态
语音播报消息 收到消息后拉起应用子进程,自行处理业务 语音播报
卡片刷新消息 在合适场景向用户推送卡片内容 打车出行、快递动态
后台消息 应用进程在前台时传给应用;不在前台时缓存,等待应用启动后再传 配置参数更新
实况窗消息 创建或更新实况窗内容 赛事比分更新、出行打车状态更新
应用内通话消息 支持网络音视频通话 网络音视频通话

三、业务流程

复制代码
应用调用Push Kit,获取Push Token
    ↓
应用上报Token至应用服务端
    ↓
应用服务端向华为Push Kit服务端发送推送消息请求
    ↓
Push Kit服务端下发消息到Push Kit
    ↓
Push Kit进行消息处理

注意:应用的通知开关默认关闭,发送请求前,请先请求通知授权。

四、其他

4.1 影响送达率的因素

因素 说明
设备在线状态 离线时缓存消息,上线后再推送
应用是否被卸载 卸载后无法送达
网络状况 是否稳定
安全控制策略 系统安全策略

4.2 推送消息的及时性

在终端设备网络条件良好且不拥堵情况下,Push Kit将使用智能推送策略以减少推送消息的时延。

说明:为降低对用户的打扰,系统会学习用户的行为习惯,预测用户的睡眠时间,在用户睡眠期间实施消息管控。在此期间Push Kit将暂时缓存该时间段内收到的消息(应用内通话或category=VoIP的消息除外)。用户结束睡眠后,Push Kit会将消息重新投递到对应设备。

4.3 消息长度与数量限制

限制项 说明
消息体大小 最大不能超过4096Bytes(不包括Token)
测试消息 每个项目每日全网最多可推送1000条测试消息
正式消息 区分场景有不同的配额

4.4 网络受限说明

如果终端设备连接的网络配置了防火墙或处于受限的网络下,可能会影响消息送达率,请检查以下端口号是否被禁用:

  • 5223

  • 443

说明:终端设备连接的推送服务器的IP是动态分配的,无法通过配置IP白名单方式放行。建议连接不受限的网络或放通以上端口。

4.5 模拟器支持情况

Push Kit不支持云真机调试。支持模拟器,但存在以下差异:

功能 模拟器支持
通用差异 参见模拟器与真机的差异
语音播报消息 不支持
实况窗消息 不支持
应用内通话消息 不支持

五、开发流程

序号 步骤 说明
1 开通推送服务 参考操作步骤开通,使用手动签名方式(DevEco Studio 6.0.0 Beta5开始支持自动签名)
2 申请通知消息自分类权益 根据通知消息分类标准申请对应场景化消息权益
3 客户端获取Push Token 调用Push Kit REST API时需要设置token参数
4 客户端请求通知授权 调用requestEnableNotification()方法弹出提醒
5 客户端配置skills标签 确保点击消息可以正常跳转应用页面
6 服务端基于服务账号生成鉴权令牌 调用REST API时设置Authorization参数
7 服务端调用REST API推送场景化消息 参考请求体结构说明发送REST API请求
8 (可选)开发消息回执 获取消息送达状态
9 (可选)客户端收到并处理消息 进行服务端和客户端的数据传递

注意事项

注意事项 说明
Push Token变化 若设备的Push Token发生变化但服务端未更新token,设备将收不到消息
频控限制 未开通权益或权益类型与请求体中category不一致,消息将归为资讯营销类,受频控限制
调测阶段 建议设置testMessage为true,防止被频控
版本迁移 若之前基于HarmonyOS 3.x/4.x接入Push Kit,现在需要为HarmonyOS Next/5.x推送,客户端和服务端仍需重新开发

六、其他相关Kit服务

相关Kit 关系
Notification Kit 本地推送通知
Form Kit 推送卡片刷新消息
Live View Kit 推送实况窗更新消息
Call Service Kit 推送应用内通话消息
相关推荐
ONEDAY4 小时前
HarmonyOS 深色模式适配实践:从资源、WebView 到网络图统一处理
harmonyos
鸿蒙开发1 天前
鸿蒙(HarmonyOS NEXT)表单校验别再手撸正则了 —— 我写了个 ArkTS 版 zod
harmonyos
TrisighT1 天前
ArkTS 的 @BuilderParam 你八成只用了皮毛——那个尾随闭包写法差点被我当 bug 删了
harmonyos·arkts·arkui
ONEDAY2 天前
HarmonyOS 多 Product 构建实践:一套代码生成多个产物
harmonyos
TT_Close2 天前
别劝退了!5秒搞定 Flutter 鸿蒙 FVM 起跑线
flutter·harmonyos·visual studio code
TrisighT2 天前
ArkTS 列表滚动时为什么会闪现旧数据?我扒了 LazyForEach 的复用逻辑
harmonyos·arkts·arkui
MonkeyKing2 天前
鸿蒙ArkTS深度剖析:ArkTS与TS/JS核心差异、静态强类型实战优势
typescript·harmonyos
TrisighT2 天前
Electron鸿蒙PC上写日志文件,我被权限和路径坑了两次
electron·harmonyos
TrisighT3 天前
一个下午搞定 ArkTS 折叠面板?结果我从两点写到晚上九点
harmonyos·arkts·arkui
花椒技术6 天前
HJPusher / HJPlayer SDK 实践:我们为什么把直播推播链路拆成一套可复用能力
设计模式·harmonyos·直播