response-native PushNotificationIOS - как выяснить, был ли обработчик уведомлений вызываться из переднего плана или из фона - PullRequest
0 голосов
/ 06 марта 2019

У меня есть следующий код в моем AppDelegate в соответствии с документацией реагировать на PushNotificationIOS (не используется в плагинах), с небольшим изменением в didReceiveRemoteNotification, так что он обрабатывает уведомления как для переднего плана, так и для фона, однако я не могу сказать,откуда он был обработан, и мой обработчик должен знать, так как он делает разные вещи.

Есть идеи, как мне получить эту информацию?

// Required to register for notifications
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
 {
  [RCTPushNotificationManager didRegisterUserNotificationSettings:notificationSettings];
 }
 // Required for the register event.
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
 {
  [RCTPushNotificationManager didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
 }
 // Required for the notification event. You must call the completion handler after handling the remote notification.
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
 {
  [RCTPushNotificationManager didReceiveRemoteNotification:userInfo];
  completionHandler(UIBackgroundFetchResultNewData);
 }
 // Required for the registrationError event.
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
 {
  [RCTPushNotificationManager didFailToRegisterForRemoteNotificationsWithError:error];
 }
 // Required for the localNotification event.
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
 {
  [RCTPushNotificationManager didReceiveLocalNotification:notification];
 }

1 Ответ

1 голос
/ 07 марта 2019

Хотите знать в JS или нативной стороне? Если исходная сторона, обратитесь к этому Определите, если приложение в фоновом режиме или на переднем плане в swift . На стороне JS вы можете использовать реактивный API AppState. https://facebook.github.io/react-native/docs/appstate

...