簡體   English   中英

當app在后台時,我可以將用戶的當前位置發送到服務器嗎?

[英]Can I send user's current location to server, when app is in background?

當app在后台時,我可以將用戶的當前位置發送到服務器嗎? 例如:在我的應用程序中,我想每隔2分鍾存儲用戶的當前位置,然后將其當前位置發送到服務器。 我可以在應用程序處於后台時執行此操作嗎? 我可以在后台模式下向服務器發送位置更新嗎?

你可以從iOS7開始。 你基本上需要要求兩種背景狀態:位置和提取。
在您的應用程序中,您將注冊gps位置更改,並在每次調用回調時存儲它們。 然后你會注冊:

 application:performFetchWithCompletionHandler:

這通常用於在后台下載文件,但您可以使用它將數據發布到Web服務器。 請注意,您無法控制此通話的頻率。
要對此進行測試,您可以從Xcode Debug菜單強制iOS模擬器中的獲取操作。
我能夠以這種方式成功跟蹤用戶位置。 您可以在Apple文檔中找到更多信息,您將在此處找到有關后台獲取的教程

我寫了一個開源項目,定期從ios設備獲取位置(還有android,windows phone和java me手機)。 它在后台運行良好。 我還編寫了服務器軟件來存儲位置並使用谷歌地圖顯示路線。 該項目完整且有效,並獲得麻省理工學院的許可。 它完全符合您的要求:

https://github.com/nickfox/GpsTracker

請務必查看phoneClients目錄中的ios,了解我如何定期獲取該位置。 ios客戶端項目還使用AFNetworking,它可以輕松地允許應用程序使用后台任務從后台向Web服務器發布更新。

在這里介紹它很好: https//developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/RegionMonitoring/RegionMonitoring.html#//apple_ref/doc/uid/TP40009497-CH9-SW1

根據授權,您可以在跨越地區時喚醒您的應用。 而不是每兩分鍾檢查一次,當你跨越區域時,通常是首選。 這節省了電池,因為它允許應用程序在大多數時間處於睡眠狀態。

此外,似乎是現場: 如何喚醒應用程序

不是我的發展領域,只是谷歌搜索。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM