溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在小程序中獲取周圍的IBeacon設(shè)備

發(fā)布時間:2021-02-18 16:27:24 來源:億速云 閱讀:291 作者:Leah 欄目:web開發(fā)

如何在小程序中獲取周圍的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)邏輯:

如何在小程序中獲取周圍的IBeacon設(shè)備

實(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è)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(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)容。

AI