
开发中,消息推送是提升用户活跃度的重要方式。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 | 推送应用内通话消息 |