Как получить токен устройства при изменении уведомления с панели настроек

#react-native

#react-native

Вопрос:

Используя библиотеку PushNotificationIOS, я могу получить deviceToken при событии register:

     const registerPN = PushNotificationIOS.addEventListener('register', deviceToken => {
      console.log("Registering Push Notification Token", deviceToken);
      store.dispatch(setPushNotificationToken(userPushNotificationToken));
    });
  

Однако, если пользователь изначально отклоняет вопрос уведомления, мы подталкиваем его к обновлению настроек с помощью:

 Alert.alert(
  'Action Required', 
  `To turn notifications on, you'll need to update your settings`,
  [
    {
      text: 'Go to settings',
      onPress: () => {
        Linking.openURL('app-settings:');
      }
    },
    {
      text: 'Cancel', 
      style: 'cancel'
    }
  ]
)
  

Если пользователь затем переходит на панель настроек и возвращается, событие ‘register’, похоже, не вызывается, поэтому я не уверен, как получить токен устройства.

Как я могу добавить прослушиватель для обновления «настроек», чтобы я мог сохранить токен для отправлений с сервера?

Ответ №1:

Разобрался.

С помощью вызова PushNotificationIOS.checkPermissions() вы можете проверить, изменились ли они. Если это так, запустите вызов PushNotificationIOS.requestPermissions(), который автоматически запустит прослушиватель с правильным токеном.