IOS 系统活跃研究
2021-04-09 本文已影响0人
刃之剑
为什么微信的通话不能在锁屏页面显示了?
为什么支付宝的收款通知有一段时间不能用了?
苹果的推送本质
iOS 在系统级别有一个推送服务程序使用 5223 端口。使用这个端口的协议源于 Jabber 后来发展为 XMPP ,被用于 Gtalk 等 IM 软件中。
所以, iOS 的推送,可以不严谨的理解为:
苹果服务器朝手机后台挂的一个 IM 服务程序发送的消息。
然后,系统根据该 IM 消息识别告诉哪个 Apps 具体发生了什么事。
然后,系统分别通知这些 Apps
唤醒时间
Notification extension serverce 可以唤醒plugin 5s
voip 未开屏情况下可以唤起定时器 5-7s
数据上报:
plugin和app直接通过 NSUserdefault 和NSfilemanger可以进行数据的通讯(App group)
voip 可以直接NSUserdefault.
1.手机充电的时候,系统是处于活跃的,你开启的后台线程可以持续接口请求,
一旦你拔掉充电器,系统就处于睡眠.app内的定时器就不会触发.
2.手动抬起唤醒屏幕可以使系统处于活跃,app内的后台任务也可以继续执行.
3.远程APNS通知唤醒屏幕,也可以系统活跃,app也可以继续执行定时器.
4.远程voip推送可以唤起app.
5.远程APNS推送可以,在收到推送的时候进行用户数据的上报.
6.远程VOIP的收到推送可以对数据进行上报(这个具体的自己操作就不多说了,可以上报但是限制有点多)
7.不上架的可以试试使用voip,hook崩溃方法,可以让app不闪退.