Отправка следующего запроса в 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
- Я пробовал много комбинаций для обоих вызовов