Environement
Я использую реагировать-родной-push-уведомление , и он настроен на:
// top level code in index.js
PushNotification.configure({
onRegister: function (token) {
console.log('TOKEN:', token);
},
onNotification: onNotif,
senderID: '11223344556677',
permissions: {
alert: true,
badge: true,
sound: true,
},
popInitialNotification: false,
requestPermissions: true,
});
Связанные части yarn list
:
├─ react-native@0.60.5
├─ @react-native-community/push-notification-ios@1.0.2
├─ react-native-push-notification@3.1.9
│ └─ @react-native-community/push-notification-ios@^1.0.1
Сертификат APNS настроен правильно. Фоновая выборка и Удаленные уведомления Режимы включены в Фоновые режимы раздел Возможности страница.
Также, как уже упоминалосьв других ответах есть метод didReceiveRemoteNotification
в AppDelegate.m
:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
[RNCPushNotificationIOS didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
}
И сообщение, отправленное в APNS:
{"aps":{"alert": "Test" ,"sound":"default","content-available": 1}}
Также пробовал с тихой полезной нагрузкой {"aps":{"content-available": 1}}
инормальная полезная нагрузка {"aps":{"alert": "Test" ,"sound":"default"}}
.
Проблема
Тестирование на реальном устройстве (iPhone 7, работает под управлением iOS 13), когда приложение находится на переднем плане, оно правильно получает уведомление (никаких фактических уведомлений нетпоказано, но onNotif
называется). Но когда приложение работает в фоновом режиме (а не убито), onNotif
больше не вызывается. Я тестировал с шумной (нормальной) и тихой (с content-available
и без сообщений) полезной нагрузкой и результат один и тот же. Шумовые push-уведомления появятся в центре уведомлений, но onNotif
не вызывается ни в одном из случаев.