2015-10-07 64 views
0

我正在研究使用iBeacon來調查購買產品的客戶的應用程序。 iBeacons用於發送推送通知,要求他們對服務進行評級。問題是,我想確保只有購買了東西的顧客才能得到通知。使用iBeacon在didExitRegion中創建後端電話

我可以打電話給我的後端,並在發出通知之前檢查該客戶是否有資格參與調查?我想這應該在didExitRegion下,但它會工作時,應用程序不在後臺運行?

回答

1

是的,您可以在信標回調中進行Web服務調用。主要的問題是,如果你的應用程序在後臺,它只有5秒的執行時間纔會被掛起。即使您的網絡服務調用速度非常快,但如果網絡速度很慢,該應用程序可能永遠無法獲得響應。

解決此問題的辦法是延長後臺運行時間。你可以看到如何做到這一點的教程here。雖然本教程適用於擴展測距目的的時間,但同樣的技術也適用於Web服務調用。

+0

我的應用程序關閉了,但是當像你這樣enterRegion表示我在1秒內有5秒時我獲得了我的數據,然後我嘗試提供本地通知,但在應用程序關閉時它不起作用?爲什麼?我以爲我有5秒? – Omarj

+0

從後臺呈現本地通知當然有效。如果你沒有看到這種情況發生,你應該發佈你的代碼,以便我們可以進一步提供幫助。這應該是一個新問題(可以從這裏鏈接到它),因爲它是一個不同的問題。 – davidgyoung

+0

你可以在這裏檢查我的代碼http://stackoverflow.com/q/33016073/1658442 – Omarj

0

另一種解決方案是使用本地通知。如果出口區域事件發生了,您可以出示本地通知。當用戶點擊通知時,應用程序將變爲活動狀態,您可以執行任何您想要的操作。請記住,如果用戶在5秒內打開通知,則需要在應用程序委託中的didRecieveLocalNotification中處理它。任何其他時間只需在應用程序委託中檢查viewDidLoadWithOptions中的本地通知標誌。希望它有一點幫助。