Firebase Pu sh тихий pu sh уведомление HTTP v1 - PullRequest
2 голосов
/ 24 марта 2020

Отправка следующего запроса в FCM через их новый HTTP v1 или через их HTTP Legacy не приводит к ожидаемому молчаливому уведомлению.

POST https://fcm.googleapis.com/v1/projects/project-name/messages:send
{
  "message": {
    "apns": {
      "payload": {
        "aps": {
          "content-available": 1
        },
        "some": "test",
        "and": "more",
        "nested": {
          "content": "with_value"
        }
      },
      "headers": {
        "priority": "5"
      }
    },
    "data": {
      "some": "content"
    },
    "token": "..."
  }
}

Ни то, ни другое работает ли он через Legacy API

POST https://fcm.googleapis.com/fcm/send
{
    "to": "...",
    "content_available": true,
    "priority": "normal",
    "data": {
        "some-key": "value"
    }
}

Но если я отправлю запрос напрямую в APNS без уровня FCM, следующий код просто будет правильно выполнен:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any],
                 fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    print(userInfo)
    let content = UNMutableNotificationContent()
    content.title = "Some title"
    content.body = "Some content"

    let uuidString = UUID().uuidString
    let request = UNNotificationRequest(identifier: uuidString,
                content: content, trigger: nil)

    let notificationCenter = UNUserNotificationCenter.current()
    notificationCenter.add(request) { (error) in
       if error != nil {
          // Handle any errors.
       }
    }

    completionHandler(.newData)
}

Дополнительная информация:

  • Добавление badge в apns обновляет значок в приложении, так что уведомление получено
  • Установка ключа notification создает уведомление в центре уведомлений
  • Все мои примеры получить успешный ответ от FCM
  • Я пробовал много комбинаций для обоих вызовов
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...