示例代码合集地址:
HarmonyOS示例代码-鸿蒙系统示例代码-华为开发者联盟 (huawei.com)
代码工程地址:
PushKit_SampleCode_Clientdemo_ArkTS: 本示例基于HarmonyOS实现了申请Push Token和添加服务卡片功能。 (gitee.com)
Push Kit体验
简介
本示例基于HarmonyOS实现了申请Push Token和推送场景化消息功能。
相关概念
- Push Kit:Push Kit(推送服务)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道。所有HarmonyOS应用可通过集成Push Kit,实现向应用实时推送消息,使消息易见,构筑良好的用户关系,提升用户的感知度和活跃度。
- Push Token:Push Token标识了每台设备上每个应用,开发者可以调用场景化消息接口,根据Token来推送消息。
- 组件:Demo中主要使用了Text、Button、Image等组件。
- pushService:本模块提供Push Kit的基础能力,包括获取和删除Push Token、绑定和解绑帐号和接收场景化消息的功能。
效果预览
申请Token页面 | 成功申请Token | 点击通知进入应用内页 | 应用在前台时展示通知扩展消息 |
---|---|---|---|
| | | |
工程目录
├─entry/src/main/ets // 代码区 │ ├─abilities │ │ ├─ClickActionAbility.ets // 通知栏点击事件能力类 │ │ ├─FormAbility.ets // 卡片能力类 │ │ ├─MainAbility.ets // 主程序入口类 │ │ ├─model.ets // 公共接口定义 │ │ └─RemoteNotificationExtAbility.ets // 通知扩展进程入口类 │ ├─pages // 存放页面文件目录 │ │ ├─ClickActionInnerPage.ets // 点击跳转落地页面 │ │ ├─GetTokenPage.ets // 申请Token页面 │ │ └─MainPage.ets // 应用主页面 │ ├─utils // 存放工具类文件目录 │ │ └─Logger.ets // 日志类,管理系统日志 │ ├─widget/pages // 存放卡片页面目录 │ │ └─WidgetCard.ets // 卡片页面 └─entry/src/main/resources // 资源文件目录
开发准备
使用说明
申请Token
- 在“Push功能主页”页面点击申请Token能力,跳转到“申请Token能力”页面。
- 点击申请Token按钮,申请结果将展示在页面上,请自行保存获取的Push Token。
推送通知消息
- 若需要推送服务与通讯类消息,请先完成申请通知消息自分类权益;若仅需发送资讯营销类消息,则无需申请。
- 使用消息通知-推送服务-服务端DEMO,或根据指导使用Postman等其它调试工具,推送通知消息。
- 下拉状态栏,在通知中心查看消息。
- 点击通知栏消息,跳转应用的落地页。
消息撤回
- 使用消息通知-推送服务-服务端DEMO,或根据指导使用Postman等其它调试工具,发送通知消息,发送时请指定notifyId。
- 下拉状态栏,在通知中心查看消息。
- 使用消息通知-推送服务-服务端DEMO,或根据指导使用Postman等其它调试工具,撤回通知消息,撤回时需要使用消息下发时的notifyId。
- 下拉状态栏,在通知中心查看消息已消失。
推送卡片刷新消息
- 长按桌面应用图标,点击服务卡片,将卡片添加到桌面,请自行保存卡片ID。
- 使用消息通知-推送服务-服务端DEMO,或根据指导使用Postman等其它调试工具,推送卡片刷新消息。
- 滑动桌面至卡片可见后,查看卡片刷新结果。
推送通知扩展消息
- 推送通知扩展消息前,请先完成申请推送通知扩展消息权益。
- 保持应用在前台,使用消息通知-推送服务-服务端DEMO,或根据指导使用Postman等其它调试工具,推送通知扩展消息。
- 查看应用在前台时,通知扩展消息的展示效果。
- 将应用切换至后台,使用消息通知-推送服务-服务端DEMO,或根据指导使用Postman等其它调试工具,再次推送通知扩展消息。
- 下拉状态栏,在通知中心查看消息。
- 点击通知栏消息,跳转应用的落地页。
约束与限制
- HarmonyOS系统:HarmonyOS NEXT Developer Beta5及以上。
- DevEco Studio版本:DevEco Studio NEXT Developer Beta5及以上。
- HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta5 SDK及以上。