線上服務咨詢
Article/文章
記錄成長點滴 分享您我感悟
微信小程序怎么實現藍牙連接?(代碼示例)
微信小程序如何實現藍牙連接?本篇文章給大家帶來的內容是介紹微信小程序實現藍牙連接的方法(步驟)。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所幫助。
最近的項目需要使用小程序的藍牙功能與硬件設備進行連接相互傳送數據指令,聯調過程中發現一些問題,于是想著記錄下來,方便以后查看!
1、初始化藍牙設備
一般使用藍牙功能肯定是想連接某一個藍牙設備,所以需要知道這個藍牙設備的名稱,一般來說都是掃描二維碼連接,那么當你掃描這個設備二維碼的時候,就需要去初始化你手機上的藍牙模塊了
/*** 初始化藍牙設備*/ initBlue:function(){ var that = this; wx.openBluetoothAdapter({//調用微信小程序api 打開藍牙適配器接口 success: function (res) { // console.log(res) wx.showToast({ title: '初始化成功', icon: 'success', duration: 800 }) that.findBlue();//2.0 }, fail: function (res) {//如果手機上的藍牙沒有打開,可以提醒用戶 wx.showToast({ title: '請開啟藍牙', icon: 'fails', duration: 1000 }) } }) },
2、搜索藍牙設備
手機藍牙初始化成功之后,就會去搜索周邊的藍牙設備
/***開始搜索藍牙設備*/findBlue(){ var that = this wx.startBluetoothDevicesDiscovery({ allowDuplicatesKey: false, interval: 0, success: function (res) { wx.showLoading({ title: '正在搜索設備', }) that.getBlue()//3.0 } }) },
3、獲取藍牙設備信息
搜索藍牙設備之后,需要獲取搜索到的藍牙設備信息,微信小程序提供了兩個方法可以獲取搜索到的藍牙設備信息,分別是:
wx.onBluetoothDeviceFound:監聽尋找到新設備的事件 ,表示只要找到一個新的藍牙設備就會調用一次該方法。
wx.ge沈陽小程序制作tBluetoothDevices:獲取在藍牙模塊生效期間所有已發現的藍牙設備,包括已經和本機處于連接狀態的設備
看兩個方法的介紹我們知道他們的區別,但是不了解他們的區別會造成什么樣的問題?
第一次我使用的是wx.onBluetoothDeviceFound方法進行聯調,發現一切正常,由于調試的時候就只有一臺設備,發現第二次重新掃碼這個藍牙設備的時候,找不到這個設備了,因為對這個方法來說,這不是一個新的設備,以前連接上過;或者當你因為某些原因藍牙傳送數據指令的時候出錯了需要重新連接,再次連接的時候也找不到當前設備,還是同樣的原因,因為當前設備對這個方法來說不是一個新設備
所以后來我就用了wx.getBluetoothDevices方法
/** * 獲取搜索到的設備信息 */ getBlue(){ var that = this wx.getBluetoothDevices({ success: function(res) { wx.hideLoading(); for (var i = 0; i < res.devices.length; i++){ /*that.data.inputValue:表示的是需要連接的藍牙設備ID,簡單點來說就是我想要連接這個藍牙設備,所以我去遍歷我搜索到的藍牙設備中是否有這個ID*/ if (res.devices[i].name == that.data.inputValue || res.devices[i].localName == that.data.inputValue){ that.setData({ deviceId: res.devices[i].deviceId, consoleLog: "設備:" + res.devices[i].deviceId, }) that.connetBlue(res.devices[i].deviceId);//4.0 return; } } }, fail: function(){ console.log("搜索藍牙設備失敗") } }) },
4、連接藍牙設備
通過上一個步驟找到這個藍牙之后,通過藍牙設備的id進行藍牙連接
/** * 獲取到設備之后連接藍牙設備 */ connetBlue(deviceId){ var that = this; wx.createBLEConnection({ // 這里的 deviceId 需要已經通過 createBLEConnection 與對應設備建立鏈接 deviceId: deviceId,//設備id success: function (res) { wx.showToast({ title: '連接成功', icon: 'fails', duration: 800 }) console.log("連接藍牙成功!") wx.stopBluetoothDevicesDiscovery({ success: function (res) { console.log('連接藍牙成功之后關閉藍牙搜索'); } }) that.getServiceId()//5.0 } }) },微信小程序,藍牙連接