0

比应用程序收到推送和应用程序未运行我需要调用一个网络方法到我的API。我需要做的默默它没有任何的互动与用户(如点击通知或其他成才 - 没有它)iOS。处理推送通知比应用程序未运行

我设置了推送有效载荷的内容可用项设置为1

我该怎么办呢?

我实现

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler handler: (UIBackgroundFetchResult) -> Void) { 

而作为一个测试,我添加

UIApplication.sharedApplication().applicationIconBadgeNumber = 20 

但看起来它不工作,因为当时我闭上我的应用程序,并发送测试通知,bagde数量不20

回答

0

这是因为你的应用没有运行。当应用程序在后台didReceiveRemoteNotification可以调用。如果您的应用程序已退出/终止,则无法默默地执行某些操作(除了更新徽章,为此,您需要直接将徽章号码发送到通知的有效内容中)。

0

如果您需要触发下载从你的服务器内容的API调用,您需要在推动有效载荷设置content-available项设置为1

Using Push Notifications to Initiate a Download苹果的文档:

如果您的服务器在新内容 可用时向您的设备发送推送通知,则可以让系统在后台运行您的应用 ,以便它可以立即开始下载新内容。此背景模式的目的是最大限度地减少用户看到推送通知和您的应用程序能够显示关联内容的时间间隔 。在用户看到通知 的大致同一时间,应用程序通常会被唤醒 ,但这仍会给您带来更多的时间。

要支持此背景模式,请在Xcode项目的 中的功能选项卡的背景模式部分启用远程通知 选项。 (您也可以使通过包括在应用程序的 Info.plist文件远程通知值 UIBackgroundModes重点支持了。)

对于推送通知来触发下载操作时, 通知的有效载荷必须包括内容可用密钥,其 值设置为1。当该密钥存在时,系统将 背景中的应用程序(或将其启动到后台)并调用应用程序 委托人的 应用程序:didReceiveRemoteNotification:fetchCompletionHandler: 方法。您实施该方法应该下载 相关内容并将其集成到您的应用中。

+0

是的,我已经将它设置为1.我在哪里以及如何下载它? – user6946075

+0

如果将其设置为1,则应用程序将在后台中唤醒,即使它未运行并调用didReceiveRemoteNotification方法。您可以调用API调用并使用该方法存储新数据。希望有所帮助,你在正确的轨道上! – BJHStudios

相关问题