IOS的IBeacon是蘋(píng)果在2014年推出的規(guī)范,并且從IOS7開(kāi)始支持(必須在IPhone 4S 以上的機(jī)型才支持),目前應(yīng)用市場(chǎng)來(lái)看,使用藍(lán)牙近場(chǎng)通信使用最多的是微信的搖一搖周邊,畢竟藍(lán)牙的用戶使用成本太高,驅(qū)動(dòng)用戶開(kāi)啟藍(lán)牙并進(jìn)行相關(guān)的操作成本太高,扯遠(yuǎn)了,從技術(shù)流程實(shí)現(xiàn)的角度,如何實(shí)現(xiàn)這一功能?
微信搖一搖周邊:是微信2015年推出的一個(gè)周邊推送功能。
集成方案
在開(kāi)發(fā)之前,需要選擇IBeacon設(shè)備的集成商(提供藍(lán)牙設(shè)備及SDK等開(kāi)發(fā)包),度娘一下可以找到不少的設(shè)備集成商,我使用了Bright Beacon的集成方案,設(shè)備做工一般吧,SDK文檔還算完備,本文更多還是介紹實(shí)現(xiàn)流程,IBeacon設(shè)備都大同小異,選擇合適的就行。
Bright Beacon集成方案,度娘一下,具體看官方介紹。
藍(lán)牙設(shè)備(外殼拆開(kāi)后,做工一般)


實(shí)現(xiàn)效果(app運(yùn)行圖)
實(shí)現(xiàn)一個(gè)簡(jiǎn)化版的周邊搖一搖(只是嘗試性功能模塊,設(shè)計(jì)和交互細(xì)節(jié)略粗糙),但基本的交互都實(shí)現(xiàn)出來(lái)了:
1.掃描周邊藍(lán)牙設(shè)備;
2.根據(jù)匹配的信息,返回推送信息;
3.浮窗提醒用戶



基本概念
BeaconRegion
beaconRegion是可自定義的區(qū)域,用于藍(lán)牙掃描的區(qū)域信息,如果手機(jī)在藍(lán)牙設(shè)備發(fā)射范圍內(nèi)(進(jìn)入、持續(xù)監(jiān)聽(tīng)、離開(kāi)),則返回相應(yīng)的狀態(tài)
Beacon
Beacon是識(shí)別到的藍(lán)牙設(shè)備對(duì)象,對(duì)應(yīng)部署的藍(lán)牙發(fā)射器,一般有以下的屬性:
1.macAddress:設(shè)備的物理地址(一般不可更改);
2.UUID:設(shè)備的唯一ID,一般是自定義;
3.major:主要區(qū)域標(biāo)識(shí),可定義(例如:xxx商場(chǎng)的標(biāo)記);
4.minor:次要區(qū)域標(biāo)識(shí),可定義(例如:xxx商場(chǎng)的xxx店鋪);
5.accuracy:相對(duì)距離,可用于排序或篩選處理
具體實(shí)現(xiàn)流程

本實(shí)現(xiàn)流程只掃描指定配置的Region,所以準(zhǔn)確度較高,但如果部署的區(qū)域和設(shè)備非常多的話,不適用,而應(yīng)該采用全部掃描的方式,但本文不再展開(kāi)描述;
其他藍(lán)牙應(yīng)用技術(shù)
1.IOS的IBeacon可以在用戶未打開(kāi)app情況下(app被用戶授權(quán)使用藍(lán)牙,并且打開(kāi)藍(lán)牙掃描),向用戶發(fā)送通知(類(lèi)似遠(yuǎn)程推送);
2.根據(jù)發(fā)射范圍的狀態(tài):進(jìn)入、持續(xù)監(jiān)聽(tīng)、離開(kāi),根據(jù)狀態(tài)的不同,做出不同的響應(yīng)(在我的應(yīng)用中,并未開(kāi)啟這些配置,而且掃描1次后關(guān)閉了藍(lán)牙掃描);
應(yīng)用場(chǎng)景
- 藍(lán)牙掃一掃、簽到;
- 區(qū)域推送;
- 現(xiàn)場(chǎng)互動(dòng),尋寶
- ==