Я создаю приложение, которое загружает файлы на сервер через ajax. Проблема заключается в том, что пользователи, скорее всего, иногда не будут иметь интернет-соединения, и клиент хотел бы, чтобы вызов ajax был запланирован на время, когда у пользователя есть соединение. Возможно, пользователь заплатит загрузку файла, когда он находится в автономном режиме и закроет приложение. Можно ли выполнить вызов ajax, когда приложение закрыто (не в фоновом режиме)? Когда приложение находится в фоновом режиме, мы можем использовать background-fetch, но я никогда не сталкивался с проблемой, чтобы что-то сделать, когда приложение закрыто.Задача iOS при закрытии приложения
ответ
Короткий ответ: нет, ваше приложение не может запускать код после его завершения.
Вы можете запустить код в AppDelegate
's applicationWillTerminate
, но этот метод предназначен в основном для сохранения пользовательских данных и других подобных задач.
См. Также this answer.
Да, вы можете делать вещи в фоновом режиме. Вы ограничены несколькими различными фоновыми режимами исполнения. Связь с сервером является одним из режимов, которые разрешены (выбор фона). Убедитесь, что вы правильно настроили свойства в Xcode в соответствии с рекомендациями (т. Е. Не говорите, что являетесь аудио-приложением при передаче данных). Смотрите подробности здесь:
Я нашел ваш вопрос, потому что он имеет тег Кордова, связанный с ним. Если вы используете Кордову вы можете использовать эту плагин здесь, чтобы управлять вещами в фоновом режиме:
https://github.com/katzer/cordova-plugin-background-mode
Edit: Если пользователь FORCE/закрытие завершения приложения, то нет ничего, что вы можете сделать. Если они просто выходят из приложения на главный экран и используют другие приложения, вы можете работать в фоновом режиме.
Другой вариант, который вы можете сделать, - запланировать локальное уведомление для загрузки файла. Если приложение успешно загружает файл, потому что оно открыто/имеет соединение/сделало это в фоновом режиме, вы отмените локальное уведомление.
Если местное уведомление не отменено, оно напомнит пользователю, что файл не загружен, и когда они открывают уведомление, ваше приложение начнет работу там, где оно было остановлено.
- (void)applicationWillTerminate:(UIApplication *)application {
if (application) {
__block UIBackgroundTaskIdentifier backgroundTask = UIBackgroundTaskInvalid;
backgroundTask = [application beginBackgroundTaskWithName:@"MyTask" expirationHandler:^{
backgroundTask = UIBackgroundTaskInvalid;
}];
[self doSomething];
[application endBackgroundTask:backgroundTask];
backgroundTask = UIBackgroundTaskInvalid;
}
}
- 1. iOS обрабатывает несколько APN при закрытии приложения
- 2. IOS проигрывает FBSession при закрытии приложения
- 3. Сбой приложения при закрытии
- 4. Задача о закрытии Javascript
- 5. метод вызова при закрытии приложения
- 6. Android Ошибка при закрытии приложения
- 7. Получение исключения при закрытии приложения
- 8. BackgroundWorker Thread при закрытии приложения
- 9. Завершение приложения при закрытии окна
- 10. Запуск Таймер при закрытии приложения
- 11. записывать слушателя при закрытии приложения
- 12. Сохранить данные приложения при закрытии
- 13. Ошибка при закрытии приложения Android
- 14. ContentDialog при закрытии окна приложения
- 15. Вызывается ли это при закрытии веб-приложения iOS?
- 16. iOS Swift - источник данных TableView - сохранение данных при закрытии приложения
- 17. GCM не отправляет уведомление при закрытии приложения ios
- 18. Как сделать запрос на сервер при закрытии приложения iOS 9?
- 19. Верхняя панель навигации iOS черна при запуске и закрытии приложения
- 20. iOS Firebase Cloud Messaging Получить данные при закрытии приложения
- 21. iOS Значительное обнаружение изменения местоположения при закрытии приложения
- 22. «System.Threading.Tasks.TaskCanceledException» произошел в WindowsBase.dll при закрытии приложения
- 23. NsmutableArray не удалось сохранить при закрытии приложения
- 24. Кто-нибудь испытывает зависание при запуске или закрытии приложения iPhone?
- 25. Синхронизация данных с сервером при закрытии приложения
- 26. Задержка при закрытии viewController на iOS 9
- 27. Как сохранить мой ListView при закрытии приложения
- 28. Python: Пауза для цикла при закрытии приложения
- 29. Общая ценность предпочтения, потерянная при закрытии приложения
- 30. Выполняет ли Thread при закрытии приложения?
использовать фоновый процесс, чтобы сделать загрузку затем ... –
@FahimParkar - вы имеете в виду, когда приложение открыто в фоновом режиме или любой или любой другой вид фонового процесса? – Tukkan
Исследуйте NSURLSession, так как это позволяет делать фоновые передачи, которые ОС позаботится и сообщит вам, когда они будут завершены, включая перезапуск вашего приложения в фоновом режиме, чтобы сообщить вам, что передача выполнена. Он может сделать все, что вам нужно. (Я только начинаю исследовать этот объект, поэтому я не эксперт.) –