Приложение React Native Expo Ejected, не может получить токен pu sh с устройства - PullRequest
0 голосов
/ 10 января 2020

Я использую Expo pu sh Уведомления для отправки уведомлений в GSM с помощью токена pu sh. Мой код:

  registerForPush = async () => {
    if (Constants.isDevice) {
      const { status: existingStatus } = await Permissions.getAsync(
        Permissions.NOTIFICATIONS,
      );
      let finalStatus = existingStatus;
      if (existingStatus !== 'granted') {
        const { status } = await Permissions.askAsync(
          Permissions.NOTIFICATIONS,
        );
        finalStatus = status;
      }
      if (finalStatus !== 'granted') {
        alert('Failed to get push token for push notification!');
        return;
      }
      const gsm = await Notifications.getExpoPushTokenAsync();
      this._storeData('TOKEN_GSM', gsm);
    } else {
      alert('Must use physical device for Push Notifications');
    }
  };

async componentDidMount() {
this.registerForPush();
}

Когда я использовал Expo для запуска приложения, я предоставлял разрешения вручную для получения токена, но теперь я выбрал приложение для запуска проекта IOS с Xcode. Я получил ошибку, что не могу получить токен pu sh: не удалось получить токен pu sh для уведомления pu sh

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Экспонируемые приложения должны использовать реагирующие нативные библиотеки для уведомлений. Я рекомендую: https://github.com/zo0r/react-native-push-notification

В настоящее время существуют экспо-кит решения. Но они скоро будут обесцениваться в пользу чистого рабочего процесса. https://blog.expo.io/expo-sdk-34-is-now-available-4f7825239319

Устаревание ExpoKit в пользу чистого рабочего процесса. Мы продолжаем вкладывать средства в создание инструментальных средств и документации в рамках чистого рабочего процесса. Мы считаем, что этот рабочий процесс строго лучше, чем ExpoKit, и имеет много преимуществ для разработчиков, таких как полная совместимость с библиотеками в экосистеме React Native, более простые обновления и более модульный нативный код, который не включает все библиотеки в Expo монолит. Простой рабочий процесс - это самый простой и быстрый способ создания дополнительных модулей, то есть встроенного кода только для тех модулей Expo, которые вы фактически используете.

1 голос
/ 10 января 2020

Функция getExpoPushTokenAsyn c () предназначена для приложения Expo. Если вы удалите свое приложение, она больше не будет зависеть от Expo и больше не будет иметь доступа к функции expo Speci c.

вы можете прочитать:

https://forums.expo.io/t/expokit-push-notifications-on-ejected-app-lots-of-misinformation-even-in-expo-docs-need-clarity/14670

простой способ сделать уведомление pu sh о реагирующем нативе - использовать firebase Облачные сообщения.

...