Отправляйте SMS в фоновом режиме с помощью Expo React Native на AndroidAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Отправляйте SMS в фоновом режиме с помощью Expo React Native на Android

Сообщение Anonymous »

Я хочу отправить SMS в фоновом режиме с помощью React Native Expo на устройстве Android.
Я использую expo-sms и expo-background-fetch code>.
Проблема в том, что обратный вызов фоновой выборки никогда не запускается.
Он регистрируется, но никогда не запускается.
Он регистрируется, но никогда не запускается.
p>
Что я делаю не так?
В app/_layout.tsx

Код: Выделить всё

const BACKGROUND_FETCH_TASK = 'background-fetch-sms';
// Prevent the splash screen from auto-hiding before asset loading is complete.
SplashScreen.preventAutoHideAsync();

// 1. Define the task by providing a name and the function that should be executed
// Note: This needs to be called in the global scope (e.g outside of your React components)
TaskManager.defineTask(BACKGROUND_FETCH_TASK, async () => {
try {
const { result } = await SMS.sendSMSAsync(“+1021230213”,”a sample message”);
return BackgroundFetch.BackgroundFetchResult.NewData;

} catch (err) {
console.log(err)
return BackgroundFetch.BackgroundFetchResult.Failed;

}

});

async function registerBackgroundFetchAsync() {
return BackgroundFetch.registerTaskAsync(BACKGROUND_FETCH_TASK, {
minimumInterval: 60 * 10, // 10 minutes
stopOnTerminate: false, // android only,
startOnBoot: true, // android only
});
}

export default function RootLayout() {
const [isRegistered, setIsRegistered] = useState(false);

useEffect(() => {
checkStatusAsync();
}, []);

const checkStatusAsync = async () => {
const status = await BackgroundFetch.getStatusAsync();
const isRegistered = await TaskManager.isTaskRegisteredAsync(BACKGROUND_FETCH_TASK);
console.log('Background fetch status:', status);
setStatus(status);
setIsRegistered(isRegistered);
};

useEffect(() => {
if (loaded) {
SplashScreen.hideAsync();
}
}, [loaded]);

useEffect(() => {
if (status === BackgroundFetch.BackgroundFetchStatus.Available && !isRegistered) {
registerBackgroundFetchAsync();
}
}, [status, isRegistered]);

useEffect(() => {
if(session?.user.id) {
AsyncStorage.setItem('userId', session.user.id);

}
}, [session]);

return (




)

}
Разрешено ли это выставкой?
Как вы думаете, что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/790 ... on-android
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»