大家都知道苹果有很多限制,没有android灵活。所以很经常有些需求下来就发现android很容易就可以实现,ios却不可以。这里就简单的把我能想到的给产品朋友列列,方便大家更好的提需求。
远程推送:分为普通远程推送、后台远程推送、静默远程推送 顾名思义推送的触发都是服务端触发。
普通远程推送:我们最常见的那种推送,有横幅不管app在前台后台还是进程完全杀死都能收到,产品可以定推送文案和声音(默认是系统叮一声,也可以自定义)还可以控制应用图标右上角的数字。当然这些数据都是通过服务推给app的。收到推送时app在前台,可以实行代码(想要什么功能让研发写就好了),app在后台和进程杀死状态在收到通知的时候都不运行任何代码(简单来说啥也干不了都是系统自己控制,ios10及以上有个推送扩展下面介绍),只能用户点击这条通知唤醒app后才能运行对于代码实行对应功能。
普通远程推送+推送扩展:ios10以下的收到普通推送app在后台或进程杀死状态想要做点别的事情(不管是什么功能都是需要运行代码的),是不可以的。但是ios10及以上有一个推送扩展可以做一些简单的功能,如请求个接口更新个啥、播放个啥、下载个啥等都可以,但是有时间限制 30秒后应用又会进入休眠状态了。
后台远程推送:后台推送横幅、声音和角标至少要有一个(如果都没有的话就是后台推送的一种特殊情况静默推送)iOS7开始允许应用收到通知后直接在后台(background)状态下运行一段代码,而无需用户点击,可用于从服务器获取内容更新。使用场景:(多媒体)聊天,Email更新,基于通知的订阅内容提前同步等功能,提升了终端用户的体验。普通后台推送是可以带声音和角标的 ,这个在app进程完全杀死也是起作用的,就是不运行代码。
静默远程推送:静默推送是后台推送的一个子集,可以做到用户无感知的情况下进行后台内容更新,因为它没有横幅和声音、角标,但是在收到静默推送后可以运行一小段代码。但是它也有不足的地方,就是app进程杀死后就无法收到了。而且是ios7及以上才有静默推送
注意:后台推送,静默推送,推送扩展能够实行的代码都是比较有限的,不是用于CPU频繁工作或者长时间运行任务,而是用来处理长时间运行的网络请求队列。
本地推送:不需要服务器触发,app自行添加的推送,简单来说就是在app运行的时候把推送内容托管给系统,到达条件就催发推送,不管app在前台还是后台、进程杀死状态都可以收到推送。常用了定时提醒用户完成一些任务如:清理垃圾、记账、买衣服、看电影、玩游戏等
最后教大家一个绝招,找现有app看效果,人家如果实现了,就没有理由实现不了。而且技术可以通过破解别人的app、并反编译查看实现方案,加快实现。