Firebase notifcations适用于android,而不是ios(离子3)

时间:2017-08-24 08:02:26

标签: ios firebase ionic-framework ionic3 firebase-notifications

使用firebase插件获得带有通知的iPhone和Android应用。这一切都在Android上工作正常,但我没有在ios上收到任何通知。我确保在xcode上勾选“推送通知”,但这并不能解决问题。这可能是什么原因?在我的离子根文件夹中,我有GoogleService-Info.plist,但它不会自动复制到ios文件夹。相反,我手动做。我不知道这可能是问题的原因吗?

提前致谢。

编辑: 我找到了解决方案。对于iOs,您需要手动请求许可。我认为这是默认行为。谢谢你的帮助!

if(platform.is('ios')) {
    window['FirebasePlugin'].grantPermission();
}

1 个答案:

答案 0 :(得分:0)

检查消息有效负载:

let params: NSMutableDictionary? = ["registration_ids":"ReceiverFcmToken",
                                            "notification" :[
                                                "title": "",
                                                "body": ""] ,
                                            "priority": "high",
                                            "data" :[ "message":[
                                                "KEY":"",
                                                "NOTIType":"","NOTYMessg":"",
                                                "SRCName":accName,
                                                "SRCPhNum":accPhone]],
                                            "content-available" : "1",
                                            "sound": "default"]

如果您使用任何API发送到服务器,则必须分别为ios和Android分别使用服务器端代码,如下所示:

if (Android)
               {
                   string tickerText = "Order Message From Kirana Kart";
                   string contentTitle = "Order Details";                       
                   postData = "{ \"registration_ids\": [ \"" + deviceID + "\" ], " +
                                 "\"data\": {\"message\":" + json + "}}";
               }
               else if (IOS)
               {
                   postData =
                   "{ \"registration_ids\": [ \"" + deviceID + "\" ], " +
                      "\"priority\": \"high\"," +
                      "\"notification\":{ \"title\" : \"AppName\",\"body\" : \"You have received new order\",\"noteID\":\"10\",\"content-available\":\"1\"}," +
                    "\"data\":{\"message\":" + json + "}}";
               }