Cordova iBeacon

一.前言

現(xiàn)在app有個(gè)需求,當(dāng)用戶進(jìn)入到某一領(lǐng)域,如果監(jiān)測(cè)到用戶在這一范圍內(nèi)犹芹,則發(fā)送相應(yīng)的信息給用戶屿笼,用戶再根據(jù)這些信息進(jìn)一步操作肝断,其中涉及到的2點(diǎn),一個(gè)是位置洁奈,另一個(gè)就是監(jiān)測(cè),那么這個(gè)時(shí)候就可以用到蘋果的ibeacon來(lái)解決,下面對(duì)ibeacon進(jìn)行詳細(xì)介紹汇竭。

二.iBeacon介紹

iBeacon的官方文檔
iBeaconApple在2013年iOS7推出的新功能。配備有低功耗藍(lán)牙通信功能的設(shè)備使用BLE技術(shù)向四周發(fā)送自己的uuid彪蓬,接收到該uuidapplication可以根據(jù)uuid進(jìn)行相應(yīng)的操作。
簡(jiǎn)單講,就是iBeacon發(fā)送信號(hào)漾峡,配備有低功耗藍(lán)牙通信功能iOS設(shè)備在一定范圍內(nèi)監(jiān)測(cè)到信號(hào)遍尺,反饋信號(hào)歧蕉。
iBeacon使用的是BLE技術(shù),具體而言催跪,利用的是BLE中名為“通告幀”(Advertising)的廣播幀懊蒸。通告幀是定期發(fā)送的幀通危,只要是支持BLE的設(shè)備就可以接收到逆害。
iBeacon的主要參數(shù):
uuid:128位標(biāo)識(shí)符靡馁,通用唯一標(biāo)識(shí)符损晤。
MajorMinoriBeacon發(fā)布者自行設(shè)定,都是16位的標(biāo)識(shí)符红竭,可以用來(lái)區(qū)別使用相同uuidiBeacon尤勋。
proximity:表示iBeacon的遠(yuǎn)近。CLProximityImmediate表示最接近茵宪,CLProximityNear表示很接近最冰,CLProximityFar表示遠(yuǎn),CLProximityUnknown表示不見(jiàn)了稀火。
rss(Received Single Strength Indicator):信號(hào)的強(qiáng)弱暖哨,是負(fù)數(shù),越接近0表示信號(hào)越強(qiáng)凰狞。

三.cordova ibeacon plugin使用

Github上都有詳細(xì)的介紹篇裁,對(duì)iOSandroid都有ranging,monitoring功能。
iOS7之后的設(shè)備可以當(dāng)作一個(gè)ibeacon服球。
需要注意在iOS8需要允許使用定位權(quán)限 (因?yàn)閕baecon的使用是基于藍(lán)牙和定位的)茴恰。
這里以ranging為例子
Start ranging a single iBeacon

var delegate = new cordova.plugins.locationManager.Delegate();
     
delegate.didDetermineStateForRegion = function (pluginResult) {
    console.log('didDetermineStateForRegion:', pluginResult);
};

delegate.didStartMonitoringForRegion = function (pluginResult) {
    console.log('didStartMonitoringForRegion:', pluginResult);
};

delegate.didRangeBeaconsInRegion = function (pluginResult) {
    console.log('didRangeBeaconsInRegion:', pluginResult);
};

var uuid = '00000000-0000-0000-0000-000000000000';
var identifier = 'beaconID';
var minor;
var major;
var beaconRegion = new cordova.plugins.locationManager.BeaconRegion(identifier, uuid, major, minor);

cordova.plugins.locationManager.setDelegate(delegate);

// required in iOS 8+
cordova.plugins.locationManager.requestWhenInUseAuthorization(); 
// or cordova.plugins.locationManager.requestAlwaysAuthorization()

cordova.plugins.locationManager.startRangingBeaconsInRegion(beaconRegion)
     .fail(function(e) { console.error(e); })
     .done();

Stop ranging a single iBeacon

var uuid = '00000000-0000-0000-0000-000000000000';
var identifier = 'beaconID'; 
var minor; 
var major; 
var beaconRegion = new cordova.plugins.locationManager.BeaconRegion(identifier, uuid, major, minor); cordova.plugins.locationManager.stopRangingBeaconsInRegion(beaconRegion)      
.fail(function(e) { console.error(e); })      
.done();

四.注意點(diǎn)

rangingBeacons為例:
1.當(dāng)app啟動(dòng)的時(shí)候,在init_page就開(kāi)始startRangingBeacons斩熊,要注意,這個(gè)startRangingBeacons只運(yùn)行一次伐庭,去到其他頁(yè)面再次進(jìn)入這個(gè)init_page頁(yè)就不能再進(jìn)行一次startRangingBeacons粉渠,這里可以通過(guò)一個(gè)字段進(jìn)行標(biāo)記。
2.當(dāng)app進(jìn)入后臺(tái)的時(shí)候需要停止ranging,當(dāng)app進(jìn)入前臺(tái)的時(shí)候需要開(kāi)始ranging圾另。
在Cordova的官網(wǎng)中有app進(jìn)入后臺(tái)和前臺(tái)相對(duì)應(yīng)的事件霸株。

  1. pause

The pause event fires when the native platform puts the application into the background, typically when the user switches to a different application.

app進(jìn)入后臺(tái),會(huì)調(diào)用pause事件集乔,例如切換不同apps去件,點(diǎn)擊home鍵等等,該方法都會(huì)調(diào)用,但是在android中尤溜,當(dāng)點(diǎn)擊home鍵時(shí)倔叼,pause事件會(huì)調(diào)用,但是在iOS中宫莱,pause事件不會(huì)調(diào)用丈攒,需要使用resign事件。

  1. resume

The resume event fires when the native platform pulls the application out from the background.

app進(jìn)入前臺(tái)授霸,在android中巡验,call resume事件;在iOS中碘耳,call active事件显设。
需要注意,resume事件和pause事件調(diào)起的方法需要包裹在一個(gè)setTimeout里面辛辨,timeout值為0敷硅,否則,程序會(huì)掛起愉阎。

3.在Cordova中绞蹦,需要判斷platform,可以導(dǎo)入device plugin榜旦。

4.如果需要在xcode的控制臺(tái)輸出log幽七,可以導(dǎo)入console plugin,原有的console.log()只能在瀏覽器的調(diào)試中輸出溅呢,但是對(duì)于真機(jī)測(cè)試澡屡,app進(jìn)入后臺(tái),需要在pause的時(shí)候輸出信息咐旧,則導(dǎo)入console plugin來(lái)打印驶鹉。

plugins name
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市铣墨,隨后出現(xiàn)的幾起案子室埋,更是在濱河造成了極大的恐慌,老刑警劉巖伊约,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姚淆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡屡律,警方通過(guò)查閱死者的電腦和手機(jī)腌逢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)超埋,“玉大人搏讶,你說(shuō)我怎么就攤上這事佳鳖。” “怎么了媒惕?”我有些...
    開(kāi)封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵系吩,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我吓笙,道長(zhǎng)淑玫,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任面睛,我火速辦了婚禮絮蒿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘叁鉴。我一直安慰自己土涝,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布幌墓。 她就那樣靜靜地躺著但壮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪常侣。 梳的紋絲不亂的頭發(fā)上蜡饵,一...
    開(kāi)封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音胳施,去河邊找鬼溯祸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛舞肆,可吹牛的內(nèi)容都是我干的焦辅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼椿胯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼筷登!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起哩盲,我...
    開(kāi)封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤前方,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后种冬,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體镣丑,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年娱两,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片金吗。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡十兢,死狀恐怖趣竣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旱物,我是刑警寧澤遥缕,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站宵呛,受9級(jí)特大地震影響单匣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宝穗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一户秤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逮矛,春花似錦鸡号、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至晋控,卻和暖如春汞窗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赡译。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工仲吏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捶朵。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓蜘矢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親综看。 傳聞我的和親對(duì)象是個(gè)殘疾皇子品腹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容