Как получить пользовательские параметры в PushNotificationIOS в React Native? - PullRequest
0 голосов
/ 24 октября 2018

У меня есть следующий ответ от PushNotification в iOS для react-native

{
  "aps": {
    "alert": "Next live session will start on 15-10-2018 13:00:00 for course NEET\/AIIMS",
    "sound": "default",
    "badge": 1,
    "relData": {
      "video_url": "",
      "start_time": "15-10-2018 13:00:00"
    }
  }
}

Как я могу получить start_time из relData, используя PushNotificatonIOS?

В настоящее время я могу получить предупреждение только с помощью этого кода:

PushNotificationIOS.addEventListener('notification', function(notification) {
    console.log('You have received a new notification! ', notification);
    Alert.alert(notification.getMessage())
});

1 Ответ

0 голосов
/ 24 октября 2018

Измените содержимое APNS notification в следующий формат.

{
    "aps": {
      "alert": {
          "title": "Some Title",
          "body": "Next live session will start on 15-10-2018 13:00:00 for course NEET\/AIIMS"
      },
      "sound": "default",
      "badge": 1,
      "mutable-content": 1,
      "content-available": 1
    },
    "relData": {
        "video_url": "",
        "start_time": "15-10-2018 13:00:00"
    }
}

Из Apple документов.https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html

Для поддержки уведомления об обновлении в фоновом режиме убедитесь, что словарь aps полезной нагрузки содержит ключ content-available со значением 1 .Если есть видимые для пользователя обновления, которые сопровождают фоновое обновление, вы можете соответственно настроить клавиши оповещения, звука или значка в словаре aps.

В верхней части вашего AppDelegate.m:

#import <React/RCTPushNotificationManager.h>

А затем в вашей реализации AppDelegate добавьте следующее:

// 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 fetchCompletionHandler:completionHandler];
 }

Вы получите relData вместе с остальной частью полезной нагрузки в userInfo в вышеописанном методе.

Для получения дополнительной информации посетите https://facebook.github.io/react-native/docs/pushnotificationios

...