本帖最后由 willning 于 2023-9-26 19:25 编辑
在使用HAC开发生产现场的PDA应用时,很多同学都遇到过类似于“消息提醒”的功能。如果在PC上,服务端通知是一个很不错的技术方案,但是在嘈杂的生产现场,有震动和响铃提示的推送通知,会给用户带来更佳的体验。要是能像接收到微信消息后,点击消息中心的条目,APP被自动唤起并打开对应的聊天画面,体验就更棒了!
所以,消息推送(Push notification)在1.13.0版本开始加入HAC全家桶。先来看看效果吧
流程示意
消息推送是移动端应用的常用功能。完整的推送需要涉及到发送端、消息服务端(Android官方的FCM在国内稳定性不佳,我们引入类似功能的极光推送JPush来替代)、设备端、APP和嵌入页面,共5方。流程稍显复杂,我做了一个示意图。
实操指南
接下来我们分别看看该如何完成一个典型的推送场景开发。
1. 移动端页面,将RegId和当前用户(设备)的关联关系发送到消息中心
此时,您需要在前端使用【读取极光推动RegId】命令,获取RegId。
2. 消息中心的服务端命令,将RegId和用户(设备)的关联存储到数据库中“推送登记表”备用 这一步是简单的数据存储,中不涉及新能力,会做服务端命令和数据库操作(添加/更新)即可。
3&4. 消息中心的页面,选择目标用户进行推送,需要从数据库中读取用户对应的RegId并向消息服务器发送请求
这一步通常是嵌入到具体的业务流程中的,比如在一线人员在Andon模块中提交设备故障单时,系统从数据库中查找该设备的检修负责人,然后从“推送登记表”找到该用户对应的regId,最后调用【极光推送(批量单推)】服务端命令,最后通过返回码是否等于200来判断推送是否成功。需要注意的是,这里的跳转页面是完整的URL地址,其中用url参数的形式传递本次推送的故障单ID(如http://xxxx.com/mes/ticket?tid=10086),实操中可以通过【在前端生成URL】命令来生成。
5. 移动端页面,利用Url中包含的参数展示推送对应的页面
在工单详情页面(如ticket)的页面加载命令中,您需要使用“GetURLQueryValue”函数,读取tid,然后展示该条单据的详情,最终完成闭环。
立即行动
怎么样,是不是很简单,现在开始行动吧!
特别提示
HAC的推送功能基于国内一线推送服务商“极光推送”。当APP处在前台(当前打开的就是HAC,这也是PDA的典型场景)时,推送成功率非常高;当APP处于后台时,因为厂商的内存回收与保活限制,我们无法保证其推送的送达率。
|