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 的后台推送通知的主要内容,如果未能解决你的问题,请参考以下文章

iOS 未收到来自 Firebase 云消息传递的通知

错误:当有来自 firebase 的通知时,我没有收到铃声

通过cURL / PHP发送时,设备上未收到Firebase通知

ios 应用更新后未收到 Firebase/APNS 通知

IOS 应用程序中未收到 Firebase 推送通知徽章计数

[iOS][推送通知]没有收到通知