一、Android推送机制和iOS推送机制的异同点
Android系统级别的推送走的是 Google 的 Firebase 服务器,这个服务器在国内不能直接访问。所以一般用个推、极光等第三方服务商SDK,同时各家Android手机厂商也会有系统级的厂商PUSH推送服务。
iOS是系统级推送,简称APNS。APNS 是Apple Push Notification Service(Apple Push服务器)的缩写。
推送流程:
推送通知的呈现效果:
1、在屏幕顶部显示的一条横幅
2、在锁屏界面显示的一块横幅
3、更新app图标的数字
4、播放音效
举例某app实现机制:
im在线时,走im,展示的是客户端本地通知,非真正意义上的push
im离线时,走push,展示的是从服务器推送给客户端的通知
二、厂商推送的知识点
1、厂商推送通道都是系统级通道,而第三方推送服务是应用级通道。当 App 后台进程被杀死(系统自动清理、用户主动清理等)时,第三方 Push 服务就无法触达用户,但是此时通过厂商Push通道依然可以向用户发送Push消息。
2、Android接入的厂商推送:华为、魅族、oppo、vivo、小米
透传:即传送网络无论传输业务如何,只负责将需要传送的业务传送到目的节点,同时保证传输的质量即可,而不对传输的业务进行处理。
这就好比快递邮件,邮件中间有可能通过自行车、汽车、火车、飞机的多种组合运输方式到达你的手上,但你不用关心它们中间经历了哪些。
三、推送通用测试点
四、测试推送相关的注意事项
Android端:
1、测试时确保手机系统时间准确
2、vivo和oppo有些机型推送权限是默认关闭的,在测试前检查app推送权限是否打开
3、Android目前推送同时走极光和个推,先到先显示,同条推送只显示一次
4、连续推送几条厂商推送,点击其中一条push进入app后,再点击另外的push,不会跳转对应页面(厂商版无法控制,不作处理)
5、未收到push,可能是账号未和设备正常绑定,比如:测试中一个id登录多台设备;安卓可以在推送后台解除设备绑定
iOS端:
1、个推的推送机制:
当应用在前台时,维持与推送服务器的长连接,实时接收推送消息
当应用在后台时,通过苹果 apns 推送通知
2、客户端无网时多次发送推送,联网后客户端只能收到最后一条推送,苹果 apns 机制如此
五、参考文档推荐
1、iOS和Android的后台推送原理各是什么?有什么区别?:https://www.zhihu.com/question/20667886
2、iOS与Android系统app消息推送机制对比介绍:https://www.mob.com/about/news/241
3、对比两大 push 服务商个推&极光:https://testerhome.com/topics/17550
4、整理 Android 所有的厂家推送平台:https://www.jianshu.com/p/79fdb0f0b80d
5、一文秒懂厂商推送:https://zhuanlan.zhihu.com/p/51730249