APNS:如果应用程序被强制退出,则接收静默远程通知

Posted

技术标签:

【中文标题】APNS:如果应用程序被强制退出,则接收静默远程通知【英文标题】:APNS: Receive silent Remote Notification if app was force quit 【发布时间】:2016-11-21 13:22:03 【问题描述】:

我正在拼命寻找一种在用户强制退出应用时接收静默远程通知的方法。

我之前已经尝试过这个。 这样做的唯一方法是删除 content-available 标志。但后来它不再是一个无声的通知。主要用例是将附加内容下载到远程通知,然后才依次安排本地通知。

随着新的UNNotification 框架的推出,他们还引入了新的Notification Service Extension,它提供了一种优雅的方式来下载与远程通知对应的内容。

但是当应用程序被强制关闭时,仍然无法对静默通知执行相同的操作。还是我错过了什么?

PS:可能是重复的,但其他线程不尊重Notification Service Extension

【问题讨论】:

【参考方案1】:

当应用强制关闭时。 AppDelegate 方法:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) 

不会调用。但是如果您的 json 有效负载包含aps,您将看到即时消息,在您滑动(或单击通知)之后将调用方法。

您可以查看google 并找到静默和正常状态的差异表以及它们在其他Application State 中的工作

【讨论】:

这很不满意,因为我必须解决本地化问题。 这似乎很合适:***.com/questions/18609923/…。我明天试试这个。在服务器上处理本地化不是一种选择! 你可以本地化 aps title 。 loc-title 或类似的东西。我不记得了)【参考方案2】:

最后我在本地化中找到了答案,这里也讨论了: Change language of alert in banner of Push Notification

我还结合使用新的通知服务扩展来在通知发送之前更改内容。

【讨论】:

以上是关于APNS:如果应用程序被强制退出,则接收静默远程通知的主要内容,如果未能解决你的问题,请参考以下文章

APNS:如果应用程序未运行,是不是接收非静默通知?

如果应用程序被强制退出,则处理 IOS 远程通知

强制退出应用程序在后台模式下的静默通知

使用firebase发送静默推送通知,以便在应用程序被杀死时唤醒它

适用于 iOS 的 Firebase FCM 静默推送通知

静默推送通知。 iOS