无法在iOS [Firebase]

时间:2016-06-02 09:05:49

标签: android ios firebase firebase-cloud-messaging

我正在使用Firebase云消息传递并为我的通知创建一个cron,而不是使用Firebase控制台。我想知道我是否可以使用我用于Android的相同json。目前我的Android设备收到我发送的通知,但在我的iOS中它没有。我想知道它是否因为我在notification对象中使用的一些参数(例如icon)仅适用于Android平台,是否会影响结果?

我的帖子请求看起来像这样

{
    "registration_ids" : $ids,
    "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark"
      "icon" : "myicon"
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
} 

更新

正如所建议的,我为我的iOS和Android创建了两个不同的cron,在我的iOS中我刚删除了json中的icon参数。但我仍然无法收到任何通知。

同样在Capabilities Tab -> Push Notifications下,我也在ON切换Background Modes-> Remote notifications

3 个答案:

答案 0 :(得分:2)

要使Firebase推送在iOS上运行,您必须将priority设置为high。参考: Can't send push notifications using the server API

答案 1 :(得分:1)

你可以对android和ios使用相同的json。 Firebase Cloud Messaging将使用每个平台的相关参数

示例:

  • icon将从定位iOS的邮件中删除,因为该平台不支持更改图标。

  • sound应该是带扩展名的文件名(ios需要扩展名)。 Firebase会在定位Android设备时删除扩展程序。

关于未传递到iOS的邮件,请尝试增加priority参数 https://firebase.google.com/docs/cloud-messaging/http-server-ref#downstream-http-messages-json

当ios应用程序处于后台时,Firebase使用APN来传递邮件,而APN通常会延迟不具有高优先级的邮件。

如果不起作用,请检查您的APNs证书配置。

答案 2 :(得分:0)

在我的json中,我添加了aps对象

'aps' => array(
                'alert' => $messageText,
                'badge' => $badge,
                'sound' => 'default',
                'id' => $id
            ),