Получение Push-уведомления на Iphone - PullRequest
0 голосов
/ 16 мая 2018

Здравствуйте, я застрял и мне нужна помощь. У меня есть сборка приложения для iOS с Angular2 + Cordova + cordova-firebase-plugin + xcode.

Я настроил приложение на сайте 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). Не было никаких подсказок о включении уведомлений (приглашение с разрешениями).

Я попытался настроить соединение APNS-FCM через сертификаты .p12 и через сертификаты .p8 (через ключ). Оба боеприпаса не дали мне положительного результата ...

Еще один момент: Если приложение работает в фоновом режиме - я не вижу сообщения в консоли, пока не открою приложение. Когда я открываю приложение, в консоли появляется сообщение, если оно было отправлено, когда приложение находилось на переднем плане.

Я просмотрел много разных руководств, но ничего не получил.

Я читал, что эмуляторы не поддерживают push-уведомления, поэтому я подключил реальное устройство через USB. И он ведет себя так же - push-уведомление не получено - только сообщение в консоли.

Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 17 мая 2018

Убедитесь, что вы отправляете оба значения title и body в полезной нагрузке. У меня возникла проблема (в Android), что если не отправлять элемент message, уведомление не будет отображаться в панели уведомлений. То же самое относится и к iOS, но в этом случае переменными являются title и body.

Если правильные переменные не найдены в полезной нагрузке, Android, iOS и Windows Phone будут считать его фоновым уведомлением , которое автоматически отправляется приложению (после его открытия). Уведомления не будут разбудить незагруженное приложение, в этом случае приложение запускается с помощью элемента уведомления, если оно выбрано на панели уведомлений.

Попробуйте отправить полезную нагрузку по умолчанию из документации , чтобы проверить ее:

{
  "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 для всех push-сервисов.

...