飘易博客(作者:Flymorn)
订阅《飘易博客》RSS,第一时间查看最新文章!
飘易首页 | 留言本 | 关于我 | 订阅Feed

APP消息推送是否进入消息中心和click、receive事件分析

Author:飘易 Source:飘易
Categories:移动开发 PostTime:2017-7-13 12:18:09
正 文:

前端时间研究APP消息推送的机制,由于机型、版本的碎片化,消息推送的机制不太好理解,所以飘易总结下,放在博文里以备后续查阅。


安卓Android系统的消息推送:



安卓
推送方式应用状态类型消息中心触发receive触发click
远程推送应用在前台1、普通消息进入不触发不触发
2、透传消息且符合格式进入不触发触发
3、透传消息且不符合格式不进入触发不触发
应用不在前台进程
存活
1、普通消息进入不触发不触发
2、透传消息且符合格式进入不触发触发
3、透传消息且不符合格式不进入不触发不触发
本地推送应用在前台

进入不触发不触发


苹果iOS系统的消息推送:



iOS
推送方式应用状态消息中心触发receive触发click
远程推送
APNs
应用在前台不进入触发不触发
应用不在前台进入不触发触发
本地推送应用在前台进入触发不触发


Android:

触发click事件: 发送透传数据并且格式为标准格式。

触发receive事件:发送透传数据且格式为非标准格式且应用在活动。(消息栏不会有提示!)

iOS:

在线:只能响应receive,但消息中心无消息;

不在线:消息中心有消息,且响应click事件.


使用须知

push是一个可用但不可依赖的功能。
1. 手机用户有自主关闭推送的权利,如果被关闭自然无法收到push。
2. Android的push更不可依赖,Android rom厂商为了省电会禁止push进程开机自启、三方清理软件会杀掉push进程。
不止是个推,所有非大厂的app,没有进入rom厂商和三方清理软件白名单的app,不管用哪个推送方案都可能会被杀。
本质上推送是一个有利于开发商但却很容易造成用户骚扰和费电的功能。
所以大多数主流app里的push的实际用处都是拉激活的非实时活动推送。
如果app主体在运行期且需要实时推送,应该使用js与服务器长链接或轮询比如socket.io方案。

开发指导

用户可以使用JS代码监听推送的消息,现在可以监听“receive”事件和“click”事件。如应用在前台时收到推送消息,在IOS平台会触发“receive”事件回调,在Android平台如发送的是透传消息并且消息不符合格式时会触发“receive”事件。

当用户点击消息中心里的消息时会启动应用,并且在监听push事件的页面触发“click”事件。



【参考】:

1、Hbuilder推送插件开发指南


作者:飘易
来源:飘易
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
上一篇:提问的智慧:X-Y PROBLEM
下一篇:APP使用小米消息推送自定义铃声iOS版
1条评论 “APP消息推送是否进入消息中心和click、receive事件分析”
1 李佳旭
2017-11-7 16:28:00
能问下,这个符合格式的透传消息和不符合格式的透传消息是怎么写的?
发表评论
名称(*必填)
邮件(选填)
网站(选填)

记住我,下次回复时不用重新输入个人信息
© 2007-2019 飘易博客 Www.Piaoyi.Org 原创文章版权由飘易所有