iOS - 当用户终止应用程序时检测推送通知

时间:2016-09-12 14:21:06

标签: ios swift push-notification

我有问题。当我的应用程序被用户终止时,应用程序不会检测到推送通知。推送通知随content_available = true一起发送。

我该怎么办?

4 个答案:

答案 0 :(得分:1)

这就是它在iOS上的工作方式。

如果你的应用根本没有投放,你的应用根本就不会收到推送通知。只有当用户在锁定屏幕或通知中心上滑动您的某个推送通知时,您的应用才会启动,并且系统会因为推送消息而通知您应用已启动。

如果你的应用程序在后台,你实际上可以通过启用“在后台运行”支持来处理推送通知。

我在说iOS9及更早版本。不确定iOS10中的行为是否已更改。但是,如果您来自Android,那么您必须接受推送通知处理在iOS上与在Android上完全不同。

答案 1 :(得分:1)

这是默认的系统行为。如果您的应用程序被用户终止(来自App切换器),则无声推送通知 (content_available = true)将不会唤醒应用程序,即不会调用Application:didreceiveremotenotification

如果您希望通知用户,请不要发送无声推送通知。发送正常推送通知,该通知将显示在用户的通知托盘中。

答案 2 :(得分:0)

将content_available作为禁用发送通知。 content_available = 0

content_available字段用于发送静音推送通知以在后台处理,不会显示为通知。

请参阅文档:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/TheNotificationPayload.html#//apple_ref/doc/uid/TP40008194-CH107-SW6

希望这有帮助, DT

答案 3 :(得分:-2)

确保在推送通知有效负载中添加优先级:" high"。它将确保您的应用在后台或关闭模式下收到推送通知。

{ "to" : "/topics/{userId}" "content_available":true, "priority":"high" "notification" : { "title": "", "body":"" }, "data" : { //custom key value pairs } }