2012-07-26 21 views
0

我需要計算從用戶位置到特定位置的距離,當應用程序處於後臺時,並根據此距離獲取本地通知。IOS中的背景可以從用戶位置到特定位置嗎?

背景位置跟蹤是完全可能的,我已經這樣做了,但可以執行一段代碼,包含一些條件檢查並基於該更新並獲得本地通知?

我沒有得到任何適當的解決方案。有沒有辦法做到這一點?

你能幫助我嗎?

+0

是的,有辦法做到這一點,因爲'位置服務'可以在後臺運行。 – holex 2012-07-26 14:54:39

+0

背景位置跟蹤是完全可能的,而且我已經這樣做了,但可以執行一段代碼,包含一些條件檢查並基於該更新並獲得本地通知? – 2012-07-27 08:23:42

回答

1

是的,你絕對可以做到這一點。我現在正在應用程序中執行此操作。如以前所建議的那樣,使用重要的位置更改或區域來儘可能地保持用戶電池的壓力。

我們觀察區域(以及設備不支持區域的重要位置變化),然後檢查幾件事情並在需要時發出本地通知。

我們從一個基本的原型開始,以證明這個概念,並強烈建議您採用這種方法來熟悉位置和通知框架。

+0

嗨邁克爾,背景位置跟蹤是完全可能的,我已經這樣做了,但是有可能執行一段代碼,包含一些條件檢查並基於該更新並獲得本地通知? – 2012-07-27 08:23:00

+1

嘿。是的,所有可能的。我們得到位置回調,做一些與位置相關的邏輯檢查,以及其他設備狀態信息,然後,如果邏輯規定它,我們會盡快註冊本地通知。 – Michael 2012-07-27 15:04:35

1

Location Awareness Programming Guide開始。大部分你需要知道的東西都在那裏。 (大多數不在那裏的東西根本不可能用於AppStore應用程序。)另請參見跟蹤iOS App Programming Guide中的用戶位置。

您所描述的最佳工具可能是「基於形狀的區域」。你基本上可以在地圖上畫一個盒子,並說「當用戶進入或離開這個盒子時,讓我知道。」如果可能的話,這是你應該使用的工具。它對電池壽命影響最小。

如果您完全無法以其他方式解決問題,請求使用startUpdatingLocation(以及Info.plist中適當的背景模式;請參閱上述文檔)來傳送背景位置是合法的。在您徒步旅行時追蹤路線的應用程序適用於此類設置。但是,如果可能的話,你應該避免它,因爲這是一個主要的電池消耗。

+0

嘿羅布,背景位置跟蹤是完全可能的,我已經這樣做了,但是有可能執行一段代碼,包含一些條件檢查並基於該更新並獲得本地通知?我必須檢查我的位置在一堆位置(我的意思是一個數組)的200米內,並且想要獲得通知。 – 2012-07-27 08:23:30

+1

看看我在上面的文檔中引用的基於形狀的區域。這應該做你正在討論的。這不是本地通知;它只是一個委託回調。但那應該就是你的意思。 – 2012-07-27 13:27:30