找回密码
 立即注册

QQ登录

只需一步,快速开始

willning
超级版主   /  发表于:2023-9-26 19:23  /   查看:3104  /  回复:0
本帖最后由 willning 于 2023-9-26 19:25 编辑

在使用HAC开发生产现场的PDA应用时,很多同学都遇到过类似于“消息提醒”的功能。如果在PC上,服务端通知是一个很不错的技术方案,但是在嘈杂的生产现场,有震动和响铃提示的推送通知,会给用户带来更佳的体验。要是能像接收到微信消息后,点击消息中心的条目,APP被自动唤起并打开对应的聊天画面,体验就更棒了!

所以,消息推送(Push notification)在1.13.0版本开始加入HAC全家桶。先来看看效果吧




流程示意
消息推送是移动端应用的常用功能。完整的推送需要涉及到发送端、消息服务端(Android官方的FCM在国内稳定性不佳,我们引入类似功能的极光推送JPush来替代)、设备端、APP和嵌入页面,共5方。流程稍显复杂,我做了一个示意图。

image.png989304809.png

实操指南
接下来我们分别看看该如何完成一个典型的推送场景开发。

1.  移动端页面,将RegId和当前用户(设备)的关联关系发送到消息中心
此时,您需要在前端使用【读取极光推动RegId】命令,获取RegId。
image.png91331786.png


2.  消息中心的服务端命令,将RegId和用户(设备)的关联存储到数据库中“推送登记表”备用
这一步是简单的数据存储,中不涉及新能力,会做服务端命令和数据库操作(添加/更新)即可。
image.png46708067.png

3&4. 消息中心的页面,选择目标用户进行推送,需要从数据库中读取用户对应的RegId并向消息服务器发送请求
这一步通常是嵌入到具体的业务流程中的,比如在一线人员在Andon模块中提交设备故障单时,系统从数据库中查找该设备的检修负责人,然后从“推送登记表”找到该用户对应的regId,最后调用【极光推送(批量单推)】服务端命令,最后通过返回码是否等于200来判断推送是否成功。需要注意的是,这里的跳转页面是完整的URL地址,其中用url参数的形式传递本次推送的故障单ID(如http://xxxx.com/mes/ticket?tid=10086),实操中可以通过【在前端生成URL】命令来生成。

image.png549653930.png

5. 移动端页面,利用Url中包含的参数展示推送对应的页面
在工单详情页面(如ticket)的页面加载命令中,您需要使用“GetURLQueryValue”函数,读取tid,然后展示该条单据的详情,最终完成闭环。

立即行动
怎么样,是不是很简单,现在开始行动吧!


特别提示
HAC的推送功能基于国内一线推送服务商“极光推送”。当APP处在前台(当前打开的就是HAC,这也是PDA的典型场景)时,推送成功率非常高;当APP处于后台时,因为厂商的内存回收与保活限制,我们无法保证其推送的送达率。

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部