iOS 应用未收到来自 Firebase 的后台推送通知
Posted
技术标签:
【中文标题】iOS 应用未收到来自 Firebase 的后台推送通知【英文标题】:iOS app doesn't receive background push notifications from Firebase 【发布时间】:2019-04-19 02:41:26 【问题描述】:我正在尝试在我正在开发的 Cordova 应用程序中使用推送通知。它们在 android 应用中运行良好,在 ios 应用处于前台时也运行良好,但是当应用处于后台或终止时我没有收到任何通知。
我启用了“推送通知”和“后台模式 - 远程通知”功能:
而且我 100% 确定服务器有设备令牌(因为推送通知在前台工作,我可以在数据库中看到它)。
这就是我使用firebase-admin node module 发送推送通知的方式:
await firebase.messaging().send(
token: userDeviceToken,
data: foo: 'bar',
notification:
title: 'This is a notification title',
body: 'This is a notification body',
,
);
我错过了什么?
编辑:
如果我在应用本应收到通知后启动应用或将其置于前台,则它的行为就像收到应用内通知一样。即使我在发送通知后等待几分钟再启动应用程序,也会发生这种情况。
【问题讨论】:
【参考方案1】:在前台检查您在应用中收到的有效负载结构。通常它与Android相比有所不同。 iOS 有效载荷结构应该是:
"aps" :
"alert" :
"body" : "great match!",
"title" : "Portugal vs. Denmark",
,
"badge" : 1,
,
"Custom_Data" : "Game level name"
【讨论】:
【参考方案2】:应用程序终止时,您无法接收远程通知。您可能希望显示本地通知,告诉用户在应用终止时他无法再收到通知。
【讨论】:
你有这个文档的链接吗?我过去曾向 iOS 应用程序添加终止的 PN。这是最近的变化吗?这不会破坏所有依赖于在不运行时接收通知的应用程序(如电子邮件或短信)吗? 应用程序在后台时可以收到远程通知,但在应用程序终止时不会。但是,如果用户强制退出,系统不会自动启动您的应用程序。 developer.apple.com/documentation/uikit/uiapplicationdelegate/… 您可能还希望将优先级设置为最高。 firebase.google.com/docs/cloud-messaging/admin/…以上是关于iOS 应用未收到来自 Firebase 的后台推送通知的主要内容,如果未能解决你的问题,请参考以下文章
通过cURL / PHP发送时,设备上未收到Firebase通知