2012-06-04 45 views
3

我正在編寫一個應用程序,該應用程序應提醒用戶在到達指定零售商店附近(300米內)時提醒用戶。iOS:如何在到達商店附近時通知用戶

我現在用的是API

[locationManager startMonitoringForRegion:grRegion desiredAccuracy:acc];

,但沒能獲得進入和退出區域的事件。

我的問題是

  1. 如何準確的是這個API。如果我們指定了300米的範圍,是否準確地開火?或者只有當用戶從一個蜂窩塔改變到另一個時,這個事件纔會被觸發。
  2. 如果在300米內無法獲得活動,我該如何執行我的要求。

PS: - 我不想使用API​​ [locationManager startUpdatingLocation];,因爲它會很快耗盡電池。

在此先感謝。

回答

4

您需要執行CLLocationManagerDelegate才能攔截-didEnterRegion-didExitRegion的位置回調。

我一直在我的應用程序中使用這個確切的API近一年了,我發現它非常準確,電池消耗最少。我會說這應該是你最好的途徑,不會考慮使用-startUpdatingLocation,因爲它需要更多的代碼來實現你所需要的,更不用說電池命中了。

執行委託和方法,你應該很好去。您也可以使用模擬器中的位置更改進行測試。在真實世界使用前測試它們,讓事情運行良好。

+0

我正在註冊所有代表,但我沒有收到回電。當我閱讀一些博客時,我讀到'startMonitoringForRegion'僅在用戶在單元塔之間切換時觸發。我再次檢查我的代碼,看看我做錯了什麼。非常感謝你的答覆。 –

+0

-startMonitoringForRegion的觸發次數比單元格轉換更頻繁。鏈接到手機信號塔的是-startMonitoringForSignificantChange。我發現區域監測非常非常準確。它只會在你越過邊界時纔會開火。所以如果你在裏面的時候啓用它,在你離開之前什麼都不會發生。 –

+0

太棒了!那就是我想要的。謝謝。 –