@
Asshasahole 你没发现就算杀死微信 qq 也能一样收到推送?
说说最常用的几个唤醒接口:
1. background fetch 接口,让系统在空闲的时候唤醒应用获取数据,权限里面会多一个后台刷新,本身有 120 秒后台时间,可以在此期间直接播放音乐续命
2. remote push 推送,在 push payload 里设置 content-available 为 1 即可从服务端唤醒应用
3. setKeepAlive 接口,本身是为了 voip 设计,此接口不但可以定时唤醒,还能开机启动,十分霸道,而且不像 fetch 看系统空闲唤醒,但是因为过于耗电在新版 iOS 已经 deprecated
4. pushkit 推送,iOS9 开始的新接口,类似 2 但是比 2 更加稳定,而且无延时不看系统休眠周期强行唤醒,缺点是如果你不是 voip 应用可能会被 Apple store 拒绝
这些只是我用过的接口,还有很多我没用过的接口,比如 location update 唤醒(天气预报应用移动到新地点时唤醒刷新数据),startbackgroundtask 无需任何权限锁定 120 秒后台,Bluetooth accessory 唤醒,newsstand 唤醒等等。目前来看,只要开发者想保持后台,apple store 是审核不出来的,只是稳定不稳定的问题。