ios 上的 Firebase 通知 - React 本机

Firebase notifications on ios - React native

我正在尝试在 iOS 和 Android 上获取推送通知 运行 React Native。 为此,我使用了 firebase,因为这似乎非常方便。

在 Android 我设法在应用程序在前台时显示通知,并且至少在应用程序在后台时显示日志,这意味着我可以处理它们。

在 iOS 上,我没有设法做到这些,不是来自我们在 aws 中的自定义后端(通过 SNS),也不是来自带有 fcm 令牌的 firebase 控制台。有趣的是,在向所有用户发送广播消息时,在 ios 应用程序图标上显示一个徽章。所以 phone.

上似乎收到了一些东西

现在更深入地研究一下,我发现 iOS 需要以下格式的通知:

{
  "Simulator Target Bundle": "com.compass.SomeExampleApp",

   "aps": {
       "badge": 0,
       "alert": {
           "title": "Push Notification Test",
           "subtitle": "Hey! ",
           "body": "Is this working?",
       },
      "sound":"default"
   }
}

至少这是您可以在 sim 上测试它们的方法。

1.这是否意味着我必须以相同的格式发送通知? 或者可以像这样:

{
    "data":{},
    "apns":  {   
    "Simulator Target Bundle": "com.company.Example",
    "aps": {
        "alert": {
            "body": "Wellcome to MyApp!",
            "title": "MyApp"
            
        }
        
    }
    
}}

2。如何发送 iOS 和 Android 可以读取 的格式,如有必要,在屏幕上显示并在后台处理?

由于我们只发送数据消息,如果我查看我们的后端,我认为这可能是问题的一部分。 从 firebase 发送时,我仍然无法在 ios 设备的屏幕上显示任何内容。有什么提示吗?

我找到了一个在两个平台上都有效的解决方案,虽然它有点奇怪,因为它似乎已经过时了。代码需要看起来像这样才能发送到 iOS 和 Android:

{  "GCM": "{ \"notification\" : {\"content_available\" : true }, \"data\": { \"body\": \"Sample message for iOS endpoints\", \"title\":\"Hello world\"} }"  }

如此处所见,如果在 GCM 消息中添加 APNS 属性,例如在本例中为 content_availablebadge.

,似乎至少部分起作用