Неопределенные разрешения на физическом устройстве iOS с использованием Expo - PullRequest
0 голосов
/ 07 мая 2018

Я тестирую на внешнем iPhone, так как знаю, что push-уведомления не работают на симуляторе. Мои токены Expo не отправлялись в мою базу данных Firebase, поэтому я покопался в коде и обнаружил, что моя переменная status из асинхронного вызова Permissions.askAsync(Permissions.NOTIFICATIONS) возвращается как undetermined. Все ответы, которые я видел на этом форуме, относятся к этой проблеме с симулятора, поэтому я не понимаю, почему это происходит.

  • Когда я впервые открыл приложение на iPhone, я разрешил push-уведомления.

Вот соответствующий код, который я использую по существу прямо из документов:

import { Font, AppLoading, Permissions, Notifications } from 'expo';

и вызываемая функция componentDidMount()

    registerForPushNotificationsAsync = async (user) => {
    const { status: existingStatus } = await Permissions.getAsync(
        Permissions.NOTIFICATIONS
      );
      let finalStatus = existingStatus;

      // only ask if permissions have not already been determined, because
      // iOS won't necessarily prompt the user a second time.
      if (existingStatus !== 'granted') {
        // Android remote notification permissions are granted during the app
        // install, so this will only ask on iOS

        const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS);
        console.log(status);
        finalStatus = status;
      }

      // Stop here if the user did not grant permissions
      if (finalStatus !== 'granted') {

        return;
      }

      // Get the token that uniquely identifies this device
      let token = await Notifications.getExpoPushTokenAsync();
      alert(token);
      var updates = {}
      updates['/expoToken'] = token;
      database.ref('users').child(user.uid).update(updates)
}

Это журнал консоли состояния после Permissions.getAsync

enter image description here

Как вы видите, я записывал в консоль переменную состояния, и в этот момент она показывает неопределенный статус.

Как еще я могу помочь отладить эту проблему? Спасибо!

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