您好,登錄后才能下訂單哦!
如何在小程序中獲取周圍的IBeacon設(shè)備?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
該功能實(shí)現(xiàn)需要使用以下API:
wx.startBeaconDiscovery(OBJECT):開始搜索附近的iBeacon設(shè)備
wx.stopBeaconDiscovery(OBJECT):停止搜索附近的iBeacon設(shè)備
wx.onBeaconUpdate(CALLBACK):監(jiān)聽 iBeacon 設(shè)備的更新事件
wx.openBluetoothAdapter(OBJECT):監(jiān)聽藍(lán)牙狀態(tài)
wx.onBluetoothDeviceFound(CALLBACK):監(jiān)聽藍(lán)牙狀態(tài)切換
具體參數(shù)以及回調(diào)函數(shù)請參考官方API
實(shí)現(xiàn)邏輯:
實(shí)現(xiàn)代碼 index.js:
onShow : function(){ var that = this; //監(jiān)測藍(lán)牙狀態(tài)的改變 wx.onBluetoothAdapterStateChange(function (res) { if (res.available) {//如果用戶打開藍(lán)牙,開始搜索IBeacon searchBeacon(); } }) //搜索beacons searchBeacon(); //搜索函數(shù) function searchBeacon() { //檢測藍(lán)牙狀態(tài) wx.openBluetoothAdapter({ success: function (res) {//藍(lán)牙狀態(tài):打開 wx.startBeaconDiscovery({//開始搜索附近的iBeacon設(shè)備 uuids: ['FDA50693-A4E2-4FB1-AFCF-C6EB07647825'],//參數(shù)uuid success: function (res) { wx.onBeaconUpdate(function (res) {//監(jiān)聽 iBeacon 設(shè)備的更新事件 //封裝請求數(shù)據(jù) var beacons = res.beacons; var reqContent = {}; var bleArray = []; for (var i = 0; i < beacons.length; i++) { var bleObj = {}; bleObj.distance = beacons[i].accuracy; bleObj.rssi = beacons[i].rssi; bleObj.mac = beacons[i].major + ":" + beacons[i].minor; bleArray.push(bleObj); } reqContent.ble = bleArray; //請求后臺向redis插入數(shù)據(jù) redisSave(reqContent); }); }, fail: function (res) { //先關(guān)閉搜索再重新開啟搜索,這一步操作是防止重復(fù)wx.startBeaconDiscovery導(dǎo)致失敗 stopSearchBeacom(); } }) }, fail: function (res) {//藍(lán)牙狀態(tài):關(guān)閉 wx.showToast({ title: "請打開藍(lán)牙", icon: "none", duration: 2000 }) } }) } function redisSave(reqContent) { wx.request({ url: "https://map.intmote.com/LocateServer/location.action", data: JSON.stringify(reqContent), method: 'POST', header: { 'Content-type': 'application/json' }, success: function (res) { // wx.showToast({ title: "seccess" }) }, fail: function (res) { // wx.showToast({ title: "1" }) } }); } //關(guān)閉成功后開啟搜索 function stopSearchBeacom() { wx.stopBeaconDiscovery({ success: function () { searchBeacon(); } }) } },
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。