仅在应用处于后台时调用的静默通知回调方法

Posted

技术标签:

【中文标题】仅在应用处于后台时调用的静默通知回调方法【英文标题】:Silent notification callback method called only when app is in background 【发布时间】:2015-05-18 19:56:57 【问题描述】:

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

并发送,

"aps": "content-available": 1

它调用以下回调方法,但仅当应用程序处于后台时:

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

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

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

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

理想情况下,静默远程通知应该在后台唤醒我的应用,并且本地通知应该可以工作。

有什么想法吗?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于仅在应用处于后台时调用的静默通知回调方法的主要内容,如果未能解决你的问题,请参考以下文章

iOS 本地通知 - 在后台时回调

App被杀死时的回调-React Native

应用在前台运行时收到 iOS 推送通知

在 iOS 中处理静默推送通知的最佳方法是啥

当应用程序在 iOS 11.4.1 中处于后台时,静默通知不起作用

iOS 静默推送通知失败并显示消息