【发布时间】:2016-10-25 10:08:59
【问题描述】:
为什么我没有收到后台未收到的通知???
这是我第一次使用推送通知。我阅读了文档并遵循Google Firebase Doc 的指导。我还实现了来自firebase/quickstart-ios 的代码。之后,我在 firebase 服务上创建了控制台,上传我的证书并成功发送了我在前台收到的消息,所以在后台也收到了。
但是当我更改从后端开发人员那里获取的控制台时,我的应用程序停止在后台模式下接收推送通知。
我在做什么:
- 功能推送通知设置为“开启”
- 在后台模式功能中启用“后台获取”、“远程通知”
- content_available 设置为“1”
- 发送消息优先级设置为“高”
如果之前运行良好,我不明白为什么应用停止在后台接收通知。
我也在 stackoverflow 上阅读了相同的问题,但没有找到我的问题的解决方案。
请帮忙解决这个问题!
更新:
实际上,我在后台没有收到任何通知,所以在前台。原因是当我从第一个控制台使用 GoogleService-Info.list 安装我的应用程序时,我接受了接收通知。所以,如果你改变了控制台,当然你改变了 GoogleService-Info.list,你应该再次接受接收通知!如果您不接受,didReceiveRemoteNotification 将不会调用!
【问题讨论】:
-
这很奇怪。
content_available不应设置为1,使用 FCM 时应设置为true。你能试试吗?如果还是不行。您可以发布有效负载的字符串结构吗? -
感谢您的重播!我将值更改为“true”,但仍未收到通知。所以这是前台的响应 %@ [AnyHashable("notification"): { badge = 1;身体=新15; e = 1;声音=默认; sound2 = 默认;标题=标题; } 你是这个意思吗?
-
我指的是来自您的应用服务器的有效负载。 :)
-
和上面的 sting 一样:{ 'content-available': '1', aps: { badge: 1, body: 'New15,' sound = enable, title = Title} }。我确信该属性是正确的。正如我所说,起初 console.firebase 一切正常,但第二次却不行。
-
您是在使用 firebase 控制台进行测试,还是从 FCM 服务器发送推送通知? AFAIK 控制台有限制。最好使用 CURL 进行测试并调整有效负载以具有
notification和data有效负载,具体取决于您希望 FCM 如何处理通知
标签: ios push-notification apple-push-notifications swift3 firebase-cloud-messaging