资讯专栏INFORMATION COLUMN

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

android_c / 1570人阅读

摘要:推送消息一般用于事件通知。说具体点,推送消息可以触发激活注册的回调函数。即使以上的配置和条件都满足,如果被杀死了说直接点,被用户踢了,或者内存用多了被系统踢了,即,在终止状态,不会调用上述回调函数的。

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

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

Project->Capabilities->Background Models->Remote notification 打勾。

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

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

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

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

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

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/16675.html

相关文章

  • JavaScript 工作原理之九-网页消息推送通知机制

    摘要:推送通知这一功能在移动端已经非常普遍。消息推送和通知消息推送和通知是两个不同的接口。消息通知网络应用中的服务工作线程或者脚本进行操作向用户显示消息通知。是消息推送服务之一。可以从对象的属性值获得处理消息推送的请求地址。 原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland。 本系列持续更新中,Github 地址请查阅这里。 这是 JavaScr...

    joyqi 评论0 收藏0
  • JavaScript 工作原理之九-网页消息推送通知机制

    摘要:推送通知这一功能在移动端已经非常普遍。消息推送和通知消息推送和通知是两个不同的接口。消息通知网络应用中的服务工作线程或者脚本进行操作向用户显示消息通知。是消息推送服务之一。可以从对象的属性值获得处理消息推送的请求地址。 原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland。 本系列持续更新中,Github 地址请查阅这里。 这是 JavaScr...

    Hancock_Xu 评论0 收藏0
  • 介绍一下渐进式 Web App(消息推送) - Part 3

    摘要:在的的监听事件下,可以接收任何传入的消息。这个也将负责向已激活推送消息的所有用户发送消息。上面的代码负责弹出请求用户是否允许或阻止浏览器中的推送消息。这个处理了保存和删除订阅同时也处理了消息推送的功能。我们将使用作为我们的消息服务。 在第一篇:介绍一下渐进式 Web App(离线) - Part 1中我们介绍了一个典型的PWA应该是什么样子的,并且介绍了一下sercer worker和...

    vslam 评论0 收藏0
  • 介绍一下渐进式 Web App(消息推送) - Part 3

    摘要:在的的监听事件下,可以接收任何传入的消息。这个也将负责向已激活推送消息的所有用户发送消息。上面的代码负责弹出请求用户是否允许或阻止浏览器中的推送消息。这个处理了保存和删除订阅同时也处理了消息推送的功能。我们将使用作为我们的消息服务。 在第一篇:介绍一下渐进式 Web App(离线) - Part 1中我们介绍了一个典型的PWA应该是什么样子的,并且介绍了一下sercer worker和...

    spacewander 评论0 收藏0
  • PWA 知不知

    摘要:类似于我们熟知的,可以脱离主线程,处理一些脏累活,干完后通过向主线程汇报工作结果。所以,也是脱离主线程的存在,与不同的是,具有持久化的能力。什么是 PWA Progressive Web App, 简称 PWA,是「渐进式」提升 Web App 体验的一种新方法,能给用户类似原生应用的体验。 「高可靠,高性能,优体验」是 PWA 惯用的形容词,他的另外一个优点就是「渐进式」,开发者可以对照 ...

    MartinDai 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<