#ios #react-native #expo
#iOS #react-native #выставка
Вопрос:
Я пытаюсь в своем проекте expo / react-native отправлять push-уведомления на мой сервер. Он работает на автономном Android, но не на автономном iPhone.
Автономное приложение для iPhone никогда не отправляет токен.
Поскольку приложение ничего не отправляет без ошибок, я попытался удалить:
if (finalStatus !== 'granted') { return; }
Это тоже не сработало.
export async function registerForPushNotificationsAsync(token) {
const { status: existingStatus } = await Permissions.getAsync(
Permissions.NOTIFICATIONS
);
let finalStatus = existingStatus;
// Only ask if permissions have not already been determined, for iOS.
if (existingStatus !== 'granted') {
const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS);
finalStatus = status;
}
// Stop here if the user did not grant permissions
if (finalStatus !== 'granted') {
return;
}
// Get the push token that uniquely identifies this device
let expoToken = await Notifications.getExpoPushTokenAsync();
// Post new push token to backend for user
return axios({
method: 'POST',
url: `${str.ROOT_URL}/account/push/`,
headers: {
Authorization: `Token ${token}`
},
data: {
"token": expoToken,
"status": finalStatus
}
});
}
Я ожидал, что токен будет отправлен на серверную часть, но в автономном приложении iOS ничего не отправляется.
Пожалуйста, дайте мне знать, если вы знаете обходной путь или сталкивались с этой проблемой раньше. Спасибо!
Комментарии:
1. Вы нашли решение? мой токен также не отправляется на серверную часть
Ответ №1:
Я думаю, что уже слишком поздно давать ответ, но я потратил 2 дня на его решение… Я надеюсь, что это кому-то поможет.
Вместо этого это:
import * as Notifications from "expo-notifications";
Попробуйте это:
import { Notifications } from "expo";
Комментарии:
1. Здравствуйте, я надеюсь, что вы сможете мне помочь. Я изменил свой импорт на импорт уведомлений из expo, но getDevicePushTokenAsync(), похоже, не решает проблему. Есть идеи, почему?
2. @kalculated Привет. Честно говоря, я не знаю. Убедитесь, что expo не удален, но я думаю, это неправильное предложение.
3. Не беспокойтесь, я обновил свой SDK и исправил ошибки