我想在一定的時間間隔內發出url請求(例如,每10分鐘的應用程序應該進行url調用並獲取一些json數據)。應用程序應該能夠在後臺運行時執行此操作。這可以做到嗎?如果是這樣,這是否違反了Apple的服務條款?有任何限制嗎?在後臺運行URL請求
回答
使用ios 7添加了可以在後臺運行的新應用程序列表。它們是:
1. Apps that play audible content to the user while in the background, such as a music player app
2. Apps that record audio content while in the background.
3. Apps that keep users informed of their location at all times, such as a navigation app
4. Apps that support Voice over Internet Protocol (VoIP)
5. Apps that need to download and process new content regularly
6. Apps that receive regular updates from external accessories
我們只需要在info.plist中聲明app支持的後臺任務。我們需要將 的UIBackgroundModes密鑰添加到我們的應用的信息。 plist。之後,你可以正常使用你的計時器,如:
UIBackgroundTaskIdentifier bgTask;
UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
}];
self.timer = [NSTimer scheduledTimerWithTimeInterval:600 target:self
selector:@selector(startServices) userInfo:nil repeats:YES];
希望它能幫助你。
非常感謝您的詳細解答 – sajaz
在基本級別:只需調度NSTimer並在定時器功能上啓動URL請求即可。如果你的目標是iOS7,那麼確保你使用的是NSURLSession。但重要的一點是要知道你是否想在後臺做這件事。如果是的話,你必須找到更多關於iOS背景模式的信息,因爲你將無法在這種模式下維護定時器。沒有什麼會導致拒絕。
感謝您的詳細解答。是的,我需要應用程序在後臺模式下運行。實際要求是,我想跟蹤用戶當前位置並每10分鐘發送一次服務器 – sajaz
我認爲iOS有一些限制,當應用程序處於後臺模式時,您無法連續發送請求。當App進入後臺模式時,iOS允許一點時間來完成Web請求。 請查閱Apple文檔: https://developer.apple.com/library/ios/documentation/uikit/reference/UIApplication_Class/Reference/Reference.html#//apple_ref/occ/instm/UIApplication/beginBackgroundTaskWithExpirationHandler:/
- 1. 在後臺運行請求IOS
- 2. 在網絡請求後運行後臺進程
- 3. 預先簽名的URL PUT在後臺執行GET請求?
- 4. 在後臺運行url在php中
- 5. 在RESTful WebApi請求上運行後臺線程
- 6. 請求後臺任務在Android中運行多次
- 7. Android - 按請求順序在後臺運行任務
- 8. TFHpple請求不在後臺線程上運行?
- 9. 如何在PHP的後臺運行cURL請求?
- 10. 在後臺服務中運行排隊請求
- 11. 如何在後臺連續運行ajax請求?
- 12. Django從請求返回並在後臺運行任務
- 13. AdMob:後臺請求?
- 14. PHP請求「後臺」
- 15. 防止SAP在後臺執行時創建後臺請求
- 16. 在AJAX請求後再次運行jCarouselLite
- 17. Yii Php執行異步後臺請求
- 18. 運行在後臺
- 19. 在後臺運行
- 20. 在後臺運行
- 21. 運行在後臺
- 22. 如何在請求使用nginx/flup重新啓動後運行後臺線程?
- 23. Ajax PHP後臺請求
- 24. 後臺Ruby on Rails請求
- 25. 後臺iOS HTTP請求
- 26. 在KVO之後執行動畫(在異步URL請求之後)
- 27. 在後臺運行並行
- 28. 在擴展作業運行後臺塊請求/響應在播放框架1.2.5
- 29. Django:FormWizard運行多次請求URL時運行一個實例
- 30. AJAX請求後再次運行siFR
是的,它可以做...我不認爲蘋果會拒絕應用程序,因爲有很多應用程序支持後臺模式運行.. –
這將是很好,如果你通過應用程序審查指南..! –