前端时间研究APP消息推送的机制,由于机型、版本的碎片化,消息推送的机制不太好理解,所以总结下,放在博文里以备后续查阅。
安卓Android系统的消息推送:
安卓 | ||||||
推送方式 | 应用状态 | 类型 | 消息中心 | 触发receive | 触发click | |
远程推送 | 应用在前台 | 1、普通消息 | 进入 | 不触发 | 不触发 | |
2、透传消息且符合格式 | 进入 | 不触发 | 触发 | |||
3、透传消息且不符合格式 | 不进入 | 触发 | 不触发 | |||
应用不在前台 | 进程 存活 |
1、普通消息 | 进入 | 不触发 | 不触发 | |
2、透传消息且符合格式 | 进入 | 不触发 | 触发 | |||
3、透传消息且不符合格式 | 不进入 | 不触发 | 不触发 | |||
本地推送 | 应用在前台 | 进入 | 不触发 | 不触发 |
苹果iOS系统的消息推送:
iOS | ||||
推送方式 | 应用状态 | 消息中心 | 触发receive | 触发click |
远程推送 APNs |
应用在前台 | 不进入 | 触发 | 不触发 |
应用不在前台 | 进入 | 不触发 | 触发 | |
本地推送 | 应用在前台 | 进入 | 触发 | 不触发 |
Android:
触发click事件: 发送透传数据并且格式为标准格式。
触发receive事件:发送透传数据且格式为非标准格式且应用在活动。(消息栏不会有提示!)
iOS:
在线:只能响应receive,但消息中心无消息;
不在线:消息中心有消息,且响应click事件.
转自:http://www.piaoyi.org/mobile-app/APP-click-receive-push.html