
推送场景方案选取 原创
1 概述
HarmonyOS NEXT提供多种消息推送能力,以满足游戏场景的多样化推送需求。
推送能力 | 适用场景 | 优点 | 约束 | 链接参考 |
Push Kit(默认分类) | 云侧后台推送,默认营销类推送,常用于拉活。 | 开发者无需申请特殊白名单权限。 | 推送数量限制2条/天。 | 通知消息 |
Push Kit(订阅分类) | 云侧后台推送,玩家通过游戏内独立按钮主动同意接收的后台订阅提醒。 | 推送数量最高可至3000条/天。 | 需要申请自分类权益并经过特殊审视。 | 通知消息分类 |
代理提醒 | 本地倒计时推送,可用于提醒玩家及时管理游戏内资产。 | 可定时,推送更个性化;本地接口。 | 需要申请特殊权限并经过特殊审视。 | 代理提醒 |
Notification Kit | 本地前台通知发布,可用于游戏在前台时发布通知。 | 本地接口。 | 只能在应用处于前台时推送。 |
2 方案一:Push Kit(默认分类)
Push Kit(推送服务)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道。可通过集成Push Kit,实现向应用实时推送消息,使消息易见,构筑良好的用户关系,提升用户的感知度和活跃度。
Push Kit可推送多种场景化消息,游戏类应用只需关注“通知消息”。通知消息进一步分为服务与通讯、资讯营销两大类别,默认为咨询营销类消息。
如无特殊需求,请游戏使用默认的“资讯营销”类推送服务。该类推送无需申请通知消息自分类权益,并遵循每个设备每天2条推送的频次限制。
开发步骤
Push Kit开发请参考Push Kit文档。
3 方案二:Push Kit(订阅分类)
如上述方案推送分类与频次限制不满足游戏需求,开发者审视场景匹配规则后,可考虑申请通知消息自分类权益,并将推送消息自分类为:服务与通讯类-服务提醒-订阅。服务与通讯类消息频次限制可最高提升至单设备单日3000条,具体规则详见推送数量管理规则。
适用场景
用户主动订阅的内容并确认会收到推送。该分类目前对以下场景开放,游戏可作为参考。游戏相关订阅场景逐步完善中,请联系华为支持人员单独审视。
- 主动设置的单场直播开播提醒、预约活动提醒。
- 主动设置的签到打卡提醒。
- 主动设置的商品降价提醒。
- 特别关注的账号/作者发布动态、书籍更新提醒。
- 用户主动设置的行情动态提醒。
- 付费订阅内容提醒。
申请规则
游戏申请订阅类消息需要严格满足以下所有条件并提供完整截图证明:
- 应用内支持用户“订阅”和“取消订阅”(用户界面需要至少出现“订阅”或“预约”等字样;“订阅”和“取消订阅”按钮需在同一页面,“取消订阅”按钮不可隐藏)。
- 订阅是用户的主动行为,订阅按钮需默认关闭(在用户未订阅的情况下,不向用户推送消息)。
- 用户的订阅或关注不等同于用户允许接收订阅推送,“订阅”和“是否接收订阅推送”需要有互相独立且默认关闭的开关(例:订阅之后弹窗询问用户是否接收该订阅的通知推送)。
- 订阅消息的范围不宜过于宽泛、不具体(错误示例:订阅行情资讯、兴趣标签等,过于宽泛、不具体)。
- 推送内容中需要体现该条推送是用户的订阅消息(例:在消息标题或正文中携带“订阅消息”、“您订阅的xx”等字样)。
4 方案三:代理提醒
与Push Kit从云侧推送到端侧不同,代理提醒属于本地定时类推送。当应用退至后台或进程终止后,系统会代理应用做相应的提醒。一个应用支持最多30个有效提醒,详见约束与限制。
适用场景
标准场景
为防止滥用于广告、营销类提醒,当前原则上仅开放以下场景。游戏申请代理提醒需要提供相关应用场景,并联系华为支持人员单独审视。
- 倒计时类:基于倒计时的提醒功能。
- 日历类:基于日历的提醒功能。
- 闹钟类:基于时钟的提醒功能。
游戏应用场景自查
合理场景举例:
- 体力恢复后通知玩家上线消耗体力。
- 资源生产、行军、升级建筑完成后提醒玩家,避免贻误战机。
- 城池遭遇袭击时提醒玩家,降低或避免游戏资产损失。
不合理场景举例:
- 赛季活动通知,提醒玩家免费领取虚拟资产及了解赛事信息。
- 特别活动开启通知,提醒玩家参与。
开发步骤
请参考代理提醒开发步骤。
5 方案四:Notification Kit
当游戏处于前台运行时,开发者可以使用Notification Kit从本地向用户发布通知。当游戏转为后台时,本地通知发布通道关闭,开发者需要接入Push Kit进行云侧离线通知的发布。完整文档参考Notification Kit。
典型能力范围
- 发布文本类型通知。
- 发布进度条类型通知(如:同步用户的上传下载进度)。
- 更新应用通知数字角标。
开发步骤
如果开发者期望用户可以通过点击通知栏拉起目标应用组件或发布公共事件,参考为通知添加行为意图。
如果开发者需要针对未读通知管理桌面图标角标,请参考管理通知角标。
6 FAQ
如何管理通知的桌面图标角标?
系统不会自动管理未读通知的桌面角标数量,需要开发者自行通过相关接口进行角标数量的加减操作,更多内容请参考管理通知角标。
Push Kit调测阶段,客户端接收到服务端发送的2条推送后无法再接收到更多消息?
Push Kit通知消息默认分类为咨询与营销,该分类遵从单日单设备单应用2条的频次限制,因此在调测阶段需要设置testMessage = true。更多内容请参考频控规则。
Push Kit发送成功无法报错,但客户端无法收到推送?
请优先检查项目模块级别下的src/main/module.json5中的skills标签配置。该配置影响用户点击消息触发的动作,若配置有误,则客户端将无法收到推送。
module.json5文件中的skills标签下可以同时存在多个skill对象,每个对象对应一种能力。若您需要同时设置推送消息跳转能力和其他跳转能力(如NFC跳转、浏览器跳转等),需要在skills数组中创建不同的skill对象,分别映射对应的能力。更多内容请参考skills标签配置示例。
Notification Kit中NotificationRequest的id和label字段有什么区别?
- id为唯一标识通知的id。如果发布两条id相同的通知,则第二条会覆盖第一条。
- label字段的功能类似于id,可以单独使用,也可与id结合共同作为通知的标识。
优先推荐使用id。如果发布通知时label不为空,那么在更新或删除该通知时,也需要指定相应的label。
原文链接:华为开发者文章
更多问题可关注:
鸿蒙游戏官方网站:已有游戏移植-鸿蒙游戏-华为开发者联盟
公开课:华为开发者学堂
