当我的应用程序在前台时,我无法让我的应用程序接收静默推送通知。我已正确设置推送通知,并且无论应用程序处于何种状态,都可以接收“警报”通知(具有警报、声音或徽章的通知)。但是当我发送以下推送通知有效负载时:
{
"aps": {
"content-available": 1
}
}
我的应用程序不会通过应用程序委托接收它application:didReceiveRemoteNotification:completionHandler:
。我在签名和功能中选中并启用了“远程通知”。
疯狂的事情是,我知道我发送正确并且手机正确接收它,因为如果我将运行方案更改为“等待可执行文件启动”并运行应用程序,发送相同的通知将自动启动应用程序(并且推送通知有效负载将包含在 中launchOptions
)。如果应用程序已经在前台(甚至后台),我就是看不出为什么我的委托方法不会被调用的任何原因。
有没有人以前经历过这种情况并且可能知道在哪里查看我是否在某处错误地更改了设置?这是在运行 13.3 并使用 Xcode 11.3 的 iPhone 上。
好吧,在为此挣扎了几天之后,我在发布这个问题后不到一个小时就偶然发现了我的答案。
要让后台通知发送到您的应用程序,您必须在UIApplication.shared.registerForRemoteNotifications()
每次启动应用程序时调用。如果我已经有了令牌,我就会跳过调用,这导致我的委托方法不被调用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句