在Iphone上接收推送通知

时间:2018-05-16 13:25:02

标签: ios iphone cordova firebase push-notification

您好我被困住了,我需要帮助。 我有一个使用Angular2 + Cordova + cordova-firebase-plugin + xcode构建的iOS应用程序。

我在developers.apple.com和firebase.console网站上设置了应用程序。 现在,当我尝试发送通知消息时,我根本不会在Iphone上收到它。

如果应用程序在前台运行,我会在调试控制台中看到收到了通知,但它没有显示在Iphone上。

来自控制台的消息:

Received data message: {
    "collapse_key" = "com.example.app"
    from = 793840040300;
    notification = {
        body = "example test notification message";
        e = 1;
    }
}

我在这里看不到:通知标题。 (通知适用于Android,但不适用于iOS)。 没有任何关于启用通知的提示(权限提示)。

我试图通过.p12证书和.p8证书(通过密钥)建立APNS-FCM连接。两个人都没有给我积极的结果......

再一次: 如果应用程序在后台运行 - 在我打开应用程序之前,我在控制台中看不到该消息。当我打开应用程序时,如果应用程序位于前台,则会在控制台中显示该消息。

我查看了许多不同的指南,但我没有得到任何结果。

我读到模拟器不支持推送通知,所以我通过USB连接了一个真实的设备。它的行为相同 - 没有收到推送通知 - 只有控制台中的消息。

请帮助我。

1 个答案:

答案 0 :(得分:1)

确保您在有效负载中同时发送titlebody。我遇到了问题(在Android中),当不发送message项时,通知不会显示在通知栏中。这同样适用于iOS,但在这种情况下,变量为titlebody

如果在有效负载中找不到正确的变量,Android,iOS和Windows Phone都会认为它是一个后台通知,它会以静默方式传送到应用程序(一旦打开) 。通知不会唤醒已卸载的应用,一旦在此情况下从通知栏中选择了该应用,该应用就会被通知项启动。

尝试从documentation发送默认有效负载进行测试:

{
  "aps": {
    "alert": { // alternatively just a string: "Your Message",
      "title": "A short string describing the purpose of the notification",
      "body": "The text of the alert message",
      // localization of message is possible
      "launch-image": "The filename of an image file in the app bundle, with or without the filename extension. The image is used as the launch image when users tap the action button or move the action slider"
    },
    "badge": 5, // Number to show at App icon
    "content-available": "0", // configure background updates, see below
    "category": "identifier", // Provide this key with a string value that represents the notification’s type
    "thread-id": "id", // Provide this key with a string value that represents the app-specific identifier for grouping notifications
    "sound": "default"  // play default sound, or custom sound, see [iOS Sound](#sound-1) section
  },
  "custom_key1": "value1",
  "custom_key2": "value2"
}

如果这不起作用,请从服务器端包含您要发送给APNS的有效负载的全部内容。

编辑:确保您将 UTF-8 编码的有效内容字段发送到所有推送服务。