仅当app在后台时才会调用静默通知回调方法

时间:2015-05-18 19:56:58

标签: ios iphone notifications apple-push-notifications

我注册了远程通知,它的工作非常好。现在我正在实施无声通知。为此,我启用了后台远程通知和应用程序从网络下载内容。

并发送,

{"aps": {"content-available": 1}}

它调用下面的回调方法,但仅当app在后台时才会调用:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler

在这种方法中,我从服务器下载一些数据后发出本地通知。但是,当app不在后台时,此方法根本不会调用。

Push Notification的Apple文档中,他们说:

“当无声通知到达时,iOS 会在后台唤醒您的应用,以便您可以从服务器获取新数据或进行后台信息处理。”

理想情况下,无声远程通知应该在后台唤醒我的应用,并且本地通知应该有效。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

经过大量的苹果文档阅读后,我发现如果用户强制退出应用程序,该方法(didReceiveRemoteNotification:fetchCompletionHandler)将不会调用。

如上所述,(link) 但是,如果用户强行退出,系统不会自动启动您的应用。在这种情况下,用户必须重新启动您的应用程序或重新启动设备,然后系统才会再次尝试自动启动您的应用。