onNotification не вызывается, когда iOS реагирует на нативное приложение, получающее push-уведомление в фоновом режиме - PullRequest
1 голос
/ 05 октября 2019

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 не вызывается ни в одном из случаев.

...