Реагировать на нативную обработку push-уведомлений ios без нажатия на уведомление - PullRequest
1 голос
/ 15 октября 2019

Я использую реагирующую версию 0.60, push-уведомление Firebase. Мне нужна помощь с реагированием на родные push-уведомления Firebase IOS с данными. Я могу отправлять уведомления с данными полезной нагрузки. Я могу получить уведомление, когда приложение на переднем плане, фон, убит. Я отправляю данные с уведомлением.

    {
      "to" : "FCM Token",
      "show_in_foreground" : "true",
      "collapse_key" : "type_a",
      "notification" : {
      "notification_type" : "N",
      "ad_type" : "banner",
      "sub_type" : "info",
      "text_message" : "Lorem ipsum dolor sit amet",
      "Title": "Notification 0000",
      "image_url": "https://firebasestorage.com/xyz",
      "ad_time" : 7,
      "x_time" : 4,
      "delay_time" : 4
    },
    "data" : {
      "notification_type" : "N",
      "ad_type" : "banner",
      "sub_type" : "info",
      "text_message" : "Lorem ipsum dolor sit amet",
      "Title": "Notification 0000",
      "image_url": "https://firebasestorage.googleapis.com/xyz",
      "ad_time" : 7,
      "x_time" : 4,
      "delay_time" : 4
    },
    "content-available" : true,
    "priority": "high"
  }

Я хочу показать уведомление и одновременно сохранить данные в локальной базе данных приложения, даже если пользователь не нажимает на уведомление.

Я могу обработать уведомление, когда пользователь нажимает на уведомление. Я хочу обновить данные в приложении, когда уведомление получено пользователем, а также показать уведомление. Я не хочу использовать тихое фоновое уведомление.

Мой код приложения Applelegate

   - (void)application:(UIApplication *)application didReceiveRemoteNotification:(nonnull NSDictionary *)userInfo fetchCompletionHandler:(nonnull void (^)(UIBackgroundFetchResult))completionHandler{
     if ([[FIRAuth auth] canHandleNotification:userInfo]) {
        completionHandler(UIBackgroundFetchResultNoData);
        return;
     }
     [[FIRMessaging messaging] appDidReceiveMessage:userInfo];
     [[RNFirebaseNotifications instance] didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
     NSLog(@"Inactive - the user has tapped in the notification when app was closed or in background 3");

   }

Я хочу достичь 1. Пользователь должен получить уведомление, даже если приложение закрыто, убито, фон. 2. Локальная база данных приложения пользователя должна обновляться, даже если пользователь не нажимает на уведомление.

Я достиг первого пункта в поиске второго. Я новичок, чтобы реагировать на родных. Я знаю, что при получении уведомления вызывается метод обработчика завершения. когда приложение убито, ничего не отображается в журнале xcode. Как мне написать код в методе завершения обработчика? и как я могу проверить, вызван ли метод и выполнено ли задание.

1 Ответ

0 голосов
/ 23 октября 2019

Итак, в настоящее время в iOS нет background services, который можно было бы запускать в фоновом режиме, как у нас в Android. Таким образом, с моей точки зрения, вы не можете проверить, показывалось ли уведомление пользователю или нет в реальном времени, если приложение было убито. Я не могу понять, зачем тебе это нужно. Уведомления работают довольно корректно, поэтому вам не нужно проверять iOS, если он работает. Что вы можете сделать, это собрать информацию об уведомлениях после перезапуска вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...