Silent Push Notification - 苹果推送消息激活后台运行

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Silent Push Notification - 苹果推送消息激活后台运行脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

推送消息一般用于事件通知。在苹果后台以及xcode成功配置推送消息后,可以由后台(或者任何程序),和APNS(Apple Push Notification Server)通信后触发。常规的消息推送可以在(由APNS token)指定用户的屏幕顶端生成一则消息栏,并伴随消息音效。但是,推送消息也可以附着内容,并且让iOS执行一段App的后台代码。这类推送则需要额外的配置,对消息体也有特殊要求。

本文主要总结这些额外的配置项,和其中隐晦的回调。

  1. PRoject->CapabilITies->Background Models->Remote notification 打勾。

  2. 在推送消息体里面必须包含"content-available"项并且设置值为"1"。
    满足以上两点后,推送消息则可以激活在挂起状态(susPEnsion)的App,并让它进入后台状态(background)。说具体点,推送消息可以触发iOS激活App注册的回调函数。

下面解释"Silent Push Notification"的几种特殊情况

  1. 当App既注册了didReceiveRemoteNotification:fetchCompletionHandler:,也注册了didReceiveRemoteNotification:时,当消息发送到设备时,只有didReceiveRemoteNotification:fetchCompletionHandler:会被调用。

  2. 当App在前台运行时, 上述的两个回调也可以被调用,但是不会生成屏幕顶端的消息栏,也没有提示音。

  3. 即使以上的配置和条件都满足,如果App被杀死了(说直接点,被用户踢了,或者内存用多了被系统踢了),即,App在终止状态(killed),iOS不会调用上述回调函数的。

下面要解释关于用户点击(消息栏)的事件产生
a) App在终止状态: iOS只会调用DiDFinishLaunchingWithOptions:
b) App在其他状态: iOS会调用上述回调。

注意, 和网上很多错误的文章不同的是, Background fetch 是不需要打勾的。

脚本宝典总结

以上是脚本宝典为你收集整理的Silent Push Notification - 苹果推送消息激活后台运行全部内容,希望文章能够帮你解决Silent Push Notification - 苹果推送消息激活后台运行所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。