2017-10-17 66 views
0

我需要編寫一個應用程序,每次在靠近Eddystone信標時調用REST服務。 我的目標是iOS 9或更高版本,並在Swift中編寫。當應用程序被終止/掛起時,iOS設備可以檢測到Eddystone信標嗎?

到目前爲止,我已經設法讓應用程序在應用程序處於前臺並且應用程序在後臺運行數小時後響應來自信標的廣告。 然後,應用程序在後臺幾小時後,沒有任何反應。

我懷疑該應用程序被操作系統殺死或暫停。

我嘗試的第一件事是用CLLocationManager和CLBeaconRegion進行地理圍欄。 但是經過Google搜索,我發現這隻適用於iBeacon,而我的信標肯定會使用Eddystone協議。

根據蘋果公司的文件,即使應用程序已被殺死(無論是由人員還是由操作系統),iBeacon上的地理圍欄應該「喚醒」應用程序..我可以使用Eddystone信標有類似行爲嗎?

我想不會,但在這種情況下,我想一個明確的答案:)

感謝

順便說一句,這個文檔https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/RegionMonitoring/RegionMonitoring.html

會談有時約燈塔和其他一些有關iBeacons,所以如果這隻適用於iBeacons或不是非常清楚。鑑於UUID的格式,我認爲它可以,但是..

回答

1

在監視CLBeaconRegion對象時,您可以使用iOS CoreLocation API在信標檢測的背景中啓動應用程序。 這隻適用於iBeacon,不適用於Eddystone,因爲CoreLocation只能檢測iBeacon。

要在iOS上檢測Eddystone,您必須使用CoreBluetooth API,它不提供此功能。

做你想做的事情的一種常用方法是使用交叉Eddystone和iBeacon的信標。使用iBeacon啓動您的應用和Eddystone進行進一步處理。

+0

你能指點我一個官方的Apple文檔,明確指出只有iBeacon可以將應用程序從睡眠/死亡狀態中喚醒嗎?以上文檔對於非技術人員有點模糊,我需要向客戶展示一個:) – zontar

+0

對不起,我確定沒有這樣的文檔存在。 (不幸的是,你很難找到任何Google技術的參考,例如Eddystone和Apple的文檔 - 他們喜歡假裝它不存在。)但是,我可以告訴你,我與Google的設計工程師討論了這個確切的問題。 Eddystone項目發佈之前,我們同意上述解決方案是使用Eddystone在iOS上進行後臺啓動的方式。 – davidgyoung

+0

謝謝!你的話我記住了。 – zontar

相關問題