Push Kit(推送服务)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道。所有HarmonyOS应用可通过集成Push Kit,实现向应用实时推送消息,构筑良好的用户关系,提升用户的感知度和活跃度。
本期内容就为大家详细介绍:首次接入Push Kit应如何配置,如何通过AGC平台进行客户端接入代码的测试。
1. 登录AGC平台并创建项目和应用
首次接入Push Kit,我们需要登录AGC平台,在新建或者已有的项目中,开通推送服务功能。当前项目开通推送功能后,项目下的所有应用均可以接入推送功能。
2. 申请消息自分类权益
当点击开通按钮后,AGC会自动提示需要申请消息自分类权益(以下称自分类权益)。我们可以直接点击去申请,也可以通过点击页面上方的配置页签,在选择应用中为对应的应用开通自分类权益。
自分类权益的开通,主要是让对应的应用获得推送对应类型消息的权益,以防止系统统一将应用的推送消息划分为营销资讯类消息,从而受到平台的管控。
当我们点击申请后,会跳转到消息类型页面,在该页面勾选我们业务中需要发送的消息类型,点击下一步。
跳转到消息示例填写页面后,根据输入框中提示的格式和应用本身的业务内容,书写一个示例消息,并提交平台进行审核。
平台审核通过后,我们就可以在业务中进行对应消息的推送,在正常的业务中,不会受到平台的消息管控。
3. 获取Push Token
接下来,就涉及到应用客户端的代码接入。Push Token的功能,主要是用于标注每一台Harmony OS设备上的每一个应用,华为推送服务器会根据对应的Push Token来进行定向的消息推送,所以Push Token的获取就依赖于应用的客户端。
首先在获取Push Token之前,需要通过notificationManager.requestEnableNotification() 方法向用户申请通知消息权限。
待用户同意后,我们可以选择在回调中通过调用pushService.getToken()方法获取Push Token。Push Token获取后,如果不主动调用更新接口或者用户卸载应用等操作,Push Token不会主动更新变动,所以我们可以将其发送给应用服务端数据库进行存储。具体的参考代码如下:
//向用户进行弹窗申请通知授权
notificationManager.requestEnableNotification(this.context).then(() => {
//如果同意提醒,则获取Token并上传服务端
pushService.getToken().then().catch()
}).catch((err: BusinessError) => {
//如果用户拒绝,可以二次请求
notificationManager.openNotificationSettings(this.context).then(() => {
pushService.getToken().then().catch()
}).catch((err: BusinessError) => {
hilog.error(DOMAIN, Tag,`[ANS] openNotificationSettings failed, code is ${err.code}, message is ${err.message}`);
});
hilog.error(DOMAIN, Tag,`[ANS] requestEnableNotification failed, code is ${err.code}, message is ${err.message}`);
});
当Push Token更新时,我们可以通过pushService.on(‘tokenUpdate’)方法监听获取新的Token,并上报给服务端更新,该方法建议在Ability生命周期中调用。
4. 通过AGC平台测试通知消息
推送通知消息,主要是通过应用的服务端向华为推送服务端请求推送来实现的。但是在这之前,应用客户端也可以通过AGC平台的可视化配置方式来测试本地的代码配置是否良好。
在AGC平台开通推送服务的页面中,我们可以手动添加推送通知。
以V3推送为例,点击进入通知消息配置页面,首先需要配置的是推送任务相关的信息。
完成上述步骤后,接下来就需要进行消息参数的配置。
第一步:配置通用参数
是否测试消息,必须勾选-是,这样在测试时,每日就有1000条可推送数量。
第二步:发送目标设备
配置设备Token:设备Token即应用客户端获取的Push Token,客户端可以通过打印日志获取到该Token用来测试,这里可以填入一条以上的Token进行推送。
第三步:配置消息内容参数
消息标题和消息内容的配置,可在侧面的预览中显示出来,用以提前预览客户端接收到的消息样式。点击通知动作则为点击消息后,应用执行的动作。
消息类型,即对应我们在申请自分类权益当中申请的消息类型,如果在推送任务中选择的应用未开通自分类权益,则默认可选地类型均属于营销资讯类。如果已针对对应的应用申请了自分类权益,则会多出已申请的消息类型。
配置好以上内容后,就可以点击右上角的“提交”按钮进行推送了。如果客户端接收到了对应的消息,则测试成功。
5.通知显示的场景
在终端设备上显示的通知消息,显示场景主要包括通知中心、锁屏、横幅、桌面图标角标与通知图标。其中角标类型在通过AGC平台测试推送的方法中暂不支持。
1.申请应用自分类权益:用于开放各种消息类型的推送权限,保障后期业务中不同类型的消息推送时无阻碍。
2.获取Push Token:标注了每台设备上的每个应用,服务端通过该Token可以实现定向的推送功能。
3.AGC平台实现消息推送:主要用于测试阶段进行客户端业务逻辑测试,功能有限,但很便捷。
至此,我们完成了AGC平台的基础推送测试。如果需要进行更多消息功能的测试与实现,则需要用另一种方式实现:通过应用服务端向华为推送服务端发送推送请求。该方式依赖于应用自身的服务端,这也是日常业务中主要的实现方式,将在后续章节详细介绍。
关于Push Kit更多的示例代码,可以参考:
https://gitcode.com/harmony_ecosystem_services/HarmonyOSAppDemo/blob/main/ApplicationServices/PushKit_demo/PKDemo/README.md。