为什么我没有收到后台未收到的通知???
这是我使用Push Notifications时的第一次体验 . 我阅读了文档,并按照Google Firebase Doc的指南进行操作 . 我也实现了firebase/quickstart-ios的代码 . 之后我在firebase服务上创建了控制台,上传了我的证书并成功发送了我在前台收到的消息,所以在Backround也是如此 .
但是,当我更改从后端开发人员处获取的控制台时,我的应用程序停止在后台模式下执行推送通知 .
我在做什么:
-
在功能推送通知设置为"ON"
-
在功能背景模式下启用"Background fetch","Remote notification"
-
content_available设为"1"
-
发送消息优先级设置为"High"
我无法理解为什么app停止在后台接收通知,如果之前运行良好 .
我也在stackoverflow上读了同样的问题,但没有找到我的问题的解决方案 .
请帮忙解决这个问题!
UPDATE:
其实我没有接受, didReceiveRemoteNotification 也不会打电话!
2 回答
您尚未添加任何代码,因此可能需要考虑以下几点:
确保定义了fetchCompletionHandler,以便
content-available: true
能够在收到推送通知时唤醒应用程序 .FCM根据推送通知有效负载中包含的内容处理不同的通知 . 尝试使用推送通知,仅使用数据有效负载和仅通知负载,尝试并查看会发生什么 .
使用此CURL命令而不是使用firebase控制台来测试发送推送通知
原因是当我从第一个控制台安装带有GoogleService-Info.list的应用程序时,我接受了接收通知 . 所以,如果您更改控制台,当然您更改了GoogleService-Info.list,您应该再次接受接收通知!如果你不接受, didReceiveRemoteNotification 将不会打电话!
附:在我的变体中,我通过调配实现通知 . 如果您选择相同的方式,请确保在Info.plist文件中具有属性 FirebaseAppDelegateProxyEnabled ,其值设置为 YES