2013-11-21 11 views
4

我有iOS應用程序(在iPhone上),當ibeacon(服務器)在範圍內時觸發。只要應用程序在後臺或前臺運行,它就可以正常運行。ibeacon在範圍內時調用iOS應用程序

有沒有一種方式來調用應用程序,當它沒有運行,並檢測到ibeacon?

我通過閱讀Apple的CLLocationManager類參考瞭解到,這種功能是可能的,但我可能是錯的。

但是,如果任何人都知道如何實現這一點,一個簡短的例子表示讚賞。

有類似的問題,但發佈似乎很模糊於是決定再次詢問

謝謝!

回答

4

我一直在問這個問題幾個星期了,答案是否定的。

蘋果公司在這個開發人員論壇很清楚:

「請注意,我所說的是,如果用戶明確地殺死在應用切換器應用程序在這一點上用戶已經告訴我們。這個應用程序不應該運行,我們將通過不再重新啓動應用程序來實現這一點,如果應用程序被操作系統終止(例如由於內存壓力),那麼我們將繼續啓動應用程序進行區域監控。如果應用程序被簡單地暫停(即用戶點擊主頁按鈕離開應用程序),那麼是的,我們將繼續在區域進入/退出時恢復應用程序。iOS中唯一的變化7 i如果用戶明確殺死了應用切換器中的應用程序「。

https://devforums.apple.com/message/886796#886796

+4

從iOS7.1開始,即使應用程序被用戶殺死,應用程序仍會在iBeacon事件中啓動。 – danielbeard

1

我看到有這個問題,一個公認的答案,但它並不完全正確。您絕對可以通過基於iBeacon進入應用程序發佈應用程序。

詳細的證明是在我的博客文章在這裏:http://developer.radiusnetworks.com/2013/11/13/ibeacon-monitoring-in-the-background-and-foreground.html

+1

嘿大衛 - 你當然是對的,如果應用程序在後臺,你的應用程序的範圍。但是,如果用戶完全明確地關閉了應用程序,它將不會有範圍。一個有趣的方式來處理這可能是使用Passbook:它是唯一的「應用程序」,將您的手機從「關閉」狀態喚醒是我的理解。 – BEEKn

+1

瞭解,但這是一個比問題中提到的更具體的用例。如果您至少運行一次應用程序來設置iBeacon監控區域,然後重新啓動您的手機(確保您的應用程序未在問題提示中在後臺運行),則iOS會將該應用程序啓動到區域更改的後臺。這可以通過我上面鏈接的博客文章中的示例應用程序來演示,這基本上是問題所要求的。 – davidgyoung

+1

從iOS 7.1開始,這已經發生了變化。我可以從應用程序切換器中殺死應用程序,並且iBeacon將喚醒應用程序,然後我可以成功對其進行排序。即使我重新啓動設備,這也可以工作。 – danielbeard

0

需要注意的是在iOS系統中是非常重要的7.1+,即使用戶顯式地強制殺死的應用程序,如果在監測燈塔地區這一點應用程序將再次啓動,並能夠在短時間內在後臺運行。

+0

你知道這個「短暫的時間」有多長?你在這段時間可以做什麼? – Jonathan

+0

AFAIK那時候是約。 5秒。 – Mike

+0

你知道我們是否可以做「我們做什麼」?像將文件寫入日誌? – Jonathan

0

我建議你閱讀關於iOS中背景處理的所有內容。根據我的理解,這與用戶運行應用程序以及系統資源的功能一樣多。根據我的理解,操作系統適應應用程序的使用情況,並編組所有進程以支持應用程序的使用。我懷疑這是切割和乾燥。

對於內容下載,建議使用推送消息 - 隨時啓動更新。如果推動可能不得不推動一條或兩條消息「重新註冊」,我不會感到驚訝。

相關問題