iOS8 鎖屏應用推送
介紹了ios8最新特性:屏幕鎖定狀態時,根據地理圍欄推送附近的app的相關知識。
什么是鎖屏推送
ios8在鎖屏狀態下收到推送消息,且顯示了應用的圖標,注意到下圖左下角KFC的圖標了嗎?這是什么,你見過嗎?
沒錯,這就是ios8的最新特性,或者說一套技術組合實現的,包括:
-
建議的應用程序(Suggested Apps)
-
地理圍欄(GPS Geo-fences)
-
鎖屏消息推送(Lock screen notifications)
-
iBeacon
想象下這種場景:當你進入某個商家門店附近時,會收到這個商家推送的消息或建議的應用(這個應用可能你已經安裝,也可能沒安裝,就推送 appstore的下載地址),離開后會收到一條感謝消息;當你進入星巴克時,星巴克的app已經自動推送到你鎖屏的左下角了,不用解鎖、搜尋你的星巴克 應用就可以快速打開了。不錯吧,類似的業務場景還可以想象的更多,特別是針對o2o應用,讓更多激動人心的創新變成可能。
那,在這種體驗到底是如何實現的呢?下面對這4個技術路線分別進行簡要介紹一下:
一、建議的應用程序
建議的應用程序是實上是一個打開app的快捷鍵,使用GPS定位,ios8設備可以跟蹤你的位置,當某個app得到了你的位置,這個app就可以展 示在鎖屏左下角,滑動它可以快速打開此app(如果沒有安裝就跳到appstore下載)。此功能可能會對某些用戶來帶來騷擾,用戶可以在上面關閉此推送 功能,或針對單獨應用關閉。如下圖:
二、地理圍欄
地理圍欄是指基于位置的周邊虛擬邊界,當你離開或進入這些特定位置時,應用程序會通過地理圍欄來提醒你。
三、鎖屏消息推送
由apple自動實現消息推送,技術實現上應該也是apns服務,只不過展示的位置不同而已。如果你的app具體beacon能力,不管你的app是開啟或關閉或手機剛重啟,均可以探測到beacon信號,由建議的應用程序,就可以根據商家唯一標識,推送特定商家的廣告等內容。
ios7與ios8對應用推薦的不同處理
四、iBeacon
iBeacon[1] 是蘋果公司2013年9月發布的移動設備用OS(iOS7)上配備的新功能。其工作方式是,配備有 低功耗藍牙(BLE)通信功能的設備使用BLE技術向周圍發送自己特有的ID,接收到該ID的應用軟件會根據該ID采取一些行動。比如,在店鋪里設置 iBeacon通信模塊的話,便可讓iPhone和iPad上運行一資訊告知服務器,或者由服務器向顧客發送折扣券及進店積分。此外,還可以在家電發生故 障或停止工作時使用iBeacon向應用軟件發送資訊。(百度) 近場通訊的技術之前還有 NFC(RFId)、紅外線等,事實在apple pay也是用NFC技術的。(參考 NFC與藍牙的優劣)。
beacon是硬件,iBeacon是軟件。
beacon硬件只會發送消息給支持iBeacon協議的設備,發送的數據結構由3部分組成:一個UUID,標識beacon商 家,一個major,標識區域,如商家位置,一個minor,標識子區域,如果商家的一個部分,如銷售部。beacon不接收消息,只發送消息。 beacon不會發送具體商家促銷等內容,它只發位置信息,收到位置消息的app,在監聽到位置信息后,再根據業務邏輯推送促銷內容。
目前4s+ios7.1以上都支持ble4(及支持ibeacon),android據說在anroid L版本會支持。(傳統做法是駐留服務在后臺不停掃瞄或雙服務或鬧鐘服務,這些都比較耗電,沒有可用性,還得等新版本android在系統層支持才行)。
業務場景要解決的兩個主要問題
上述4種技術互相混合,就產生了最開始描述的應用場景,基于位置的app要解決兩個主要問題:一是跟蹤我的位置;二是興趣點標識(如商家的位置)。兩者都需要互聯識別和匹配,才可以實際推薦特定應用、根據特定應用推送特定消息。
下面分開具體解釋現在的做法。
一、跟蹤位置
傳統做法是通GPS定位來實現,同時輔以wi-fi熱點、基站信息,三種方法來修正用戶的位置,但這種定位數據不夠精確,常常有較大的誤差,特別是 在室內時。這就需要在室內(商家)布署不同的熱點設備,之前小米等公司的做法是架設wi-fi設備,跟電信號百推廣的free-chinanet的做法類 似,現在推廣的情況不清楚。apple的做法就是架設不同的iBeacon設備,據傳平安付在做。兩者均需要架設設備,所有會是一個比較漫長的過程。如果 這個流量入口搶占了,將會又一個技術革命。只要成本和收益可觀,商家應該是愿意嘗試的,而且還可以把線下支付場景一并接入(雖然銀聯一直在打壓線下支付, 但革命潮流是阻擋不住的!)。
二、商家標識
室內定位是哪外一套技術解決方案,apple的做法是使用iBeacon技術,它基于藍牙BLE4.0以上協議實現,需要在各商家鋪設各iBeacon硬件設備,每個設備都有唯一的標識。目前國內有很多廠商在生產這種設備了(如這家),包括微信也支持類似設備接入和綁定了(微信什么都做!)。有的廠家成本可以做到30元一個,覆蓋范圍在40米左右。當然覆蓋范圍還跟室內環境有一定關系,如障礙物等。一臺手機可以支持20個區域監控(來源 百度)。這些廠家已經實現類似如下功能:掃描周圍的傳感器設備、讀取傳感器設備的參數、上傳傳感器設備狀態(電池、UMM等)至 云平臺、設置傳感器等。
下一步,技術實現
作為一名開發者,你所要做的就是設置beacon區域監控/beacon地理圍欄,然后等用戶進入這個區域,這個APP的圖標將自動出現在鎖屏上。
技術實現上,首先得開啟info.plist
<key>NSLocationAlwaysUsageDescription</key> <string>當你靠近星巴克時可以在鎖屏時更容易的訪問星巴克APP</string>
慎重!NSLocationAlwaysUsageDescription在提交app審核時,審核說明一定要說清楚應用場景,否則很可能拒掉!!
下面的代碼基于 EstimoteSDK
#import "ESTBeaconManager.h" @interface AppDelegate () <ESTBeaconManagerDelegate> @property (strong, nonatomic) ESTBeaconManager *beaconManager; @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.beaconManager = [[ESTBeaconManager alloc] init]; // modify the region definition to match your set of beacons ESTBeaconRegion *region = [[ESTBeaconRegion alloc] initWithProximityUUID:ESTIMOTE_PROXIMITY_UUID major:12345 minor:54321 identifier:@"My region"]; [self.beaconManager requestAlwaysAuthorization]; [self.beaconManager startMonitoringForRegion:region]; return YES; } @end
參考
ibeacon faq http://blog.beaconstac.com/2014/08/beacon-faqs-everything-you-need-to-know/
業務場景 http://blog.beaconstac.com/2014/08/marketing-with-ibeacons-10-tips-to-make-the-most-of-it/
http://blog.estimote.com/post/97824495825/ios-8-pushes-location-context-to-a-new-level-lock
http://www.gottabemobile.com/2014/09/28/how-to-use-suggested-apps-in-ios-8/
作者
朱淦 350050183@qq.com