Я интегрирую фоновую выборку Expo в свой проект мобильного приложения.
Я пишу код для запуска фоновой задачи каждую минуту, когда он работает правильно в android.
Если я пытаюсь использовать iPad с приведенной ниже конфигурацией и кодом, он не выполняет задачу автоматически.
Может ли кто-нибудь помочь с этим?
Изменения конфигурации в app.json
Код: Выделить всё
{
"expo": {
"ios": {
"infoPlist": {
"UIBackgroundModes": ["location", "fetch"]
}
}
}
}
Код: Выделить всё
const triggerBackgroundFetch = async (taskName: string, taskFn: TaskManagerTaskExecutor, interval: number = 60 * 1) => {
try {
if (!TaskManager.isTaskDefined(taskName)) {
console.log('new task')
TaskManager.defineTask(taskName, taskFn);
}
else {
console.log('existing task')
}
const options = {
minimumInterval: interval // in seconds
};
await BackgroundFetch.registerTaskAsync(taskName, options);
await BackgroundFetch.setMinimumIntervalAsync(60);
} catch (err) {
console.log("registerTaskAsync() failed:", err);
}
}
const executeBackgroundTask = () => {
try {
// fetch data here...
const backendData = "task run time " + new Date(Date.now()).toLocaleString();
Alert.alert("Bg task")
console.log("Background Task: ", backendData);
//@ts-ignore
setStateFn(backendData);
return backendData
? BackgroundFetch.BackgroundFetchResult.NewData
: BackgroundFetch.BackgroundFetchResult.NoData;
} catch (err) {
console.log('err')
return BackgroundFetch.BackgroundFetchResult.Failed;
}
}
const triggerTask = async () => {
console.log('trigger background fetch')
await triggerBackgroundFetch('BackgroundTask1', executeBackgroundTask, 60);
// await unregisterBackgroundFetchAsync('PushNotificationBackgroundTask3');
};

iOS: 15.6.1
Я пытаюсь получить фоновую выборку Expo в автономном приложении Expo на iPad с помощью компьютера под управлением Windows.
Я ожидаю автоматического запуска задачи фоновой выборки каждый интервал.
Подробнее здесь: https://stackoverflow.com/questions/759 ... ly-in-ipad
Мобильная версия