uniapp藍(lán)牙連接的通用步驟
在uniapp中實(shí)現(xiàn)藍(lán)牙連接需要使用uni-app插件市場(chǎng)提供的插件,如"uni-bluetooth-serial"插件。以下是實(shí)現(xiàn)藍(lán)牙連接的通用步驟:
安裝插件
通過手機(jī)App
中心,搜索并安裝uniapp的藍(lán)牙插件。
初始化藍(lán)牙設(shè)備
在前端Vue組件,初始化藍(lán)牙設(shè)備,并使用uni.openBluetoothAdapter
方法開啟藍(lán)牙模塊。這是藍(lán)牙設(shè)備連接的基礎(chǔ)。
// 創(chuàng)建Vue對(duì)象 const app = new Vue({ el: '#app', data() { return { devices: [], connectedDevice: null, serviceId: "0000ffe0-0000-1000-8000-00805f9b34fb", writeCharacteristicId: "0000ffe1-0000-1000-8000-00805f9b34fb", } }, methods: { // 打開藍(lán)牙 openBluetooth(){ uni.openBluetoothAdapter({ success: () => { this.logs.push('開啟藍(lán)牙成功') // 立即開始掃描設(shè)備 this.startScanDevices() }, fail: (res) => { this.logs.push(`開啟藍(lán)牙失敗[${res.errCode}]: ${res.errMsg}`) } }) } } })
設(shè)備掃描和連接
使用uni.startBluetoothDevicesDiscovery
方法掃描附近的藍(lán)牙設(shè)備。在收到設(shè)備列表后,可從列表中選擇要連接的設(shè)備,設(shè)備連接信號(hào)管理可以通過uni.onBluetoothDeviceFound
函數(shù)進(jìn)行設(shè)置。調(diào)用uni.createBLEConnection
方法與所選藍(lán)牙設(shè)備建立連接。連接成功后,獲得設(shè)備服務(wù)列表,并連接所需的服務(wù)和特征。對(duì)于不同類型的藍(lán)牙設(shè)備,有不同的連接方式。下面是一個(gè)通用的藍(lán)牙設(shè)備連接示例:
// 設(shè)備發(fā)現(xiàn)更新 onDeviceFound(e) { // 掃描到的設(shè)備 const device = e.devices[0] // 判斷是否已存在列表中 if(!this.deviceIsExist(device.deviceId)) { this.devices.push(device) } }, // 連接設(shè)備 connect(deviceId) { uni.createBLEConnection({ deviceId: deviceId, success: (res) => { this.connectedDevice = res // 獲取設(shè)備的服務(wù)列表 this.getBLEDeviceServices(deviceId) }, fail: (res) => { console.log('連接設(shè)備失敗', res) } }) }, // 獲取設(shè)備的服務(wù)列表 getBLEDeviceServices(deviceId) { uni.getBLEDeviceServices({ deviceId, success: (res) => { // 打印日志 this.logs.push('獲取服務(wù)列表成功') console.log('設(shè)備服務(wù)列表', res.services) // 獲取設(shè)備的特征值 res.services.forEach(service => { if (service.uuid.toUpperCase() == "FFF0") { this.getBLEDeviceCharacteristics(deviceId, service.uuid) } }) }, fail: (res) => { console.log('獲取服務(wù)列表失敗', res) } }) }, // 獲取設(shè)備的特征值 getBLEDeviceCharacteristics(deviceId, serviceId) { uni.getBLEDeviceCharacteristics({ deviceId, serviceId, success: (res) => { console.log('設(shè)備特征值列表', res.characteristics) // 遍歷特征值,找到所需特征 res.characteristics.forEach(characteristic => { // 打印日志 console.log('設(shè)備特征值', characteristic) if
總結(jié)
到此這篇關(guān)于uniapp藍(lán)牙連接的文章就介紹到這了,更多相關(guān)uniapp藍(lán)牙連接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
escape函數(shù)解決js中ajax傳遞中文出現(xiàn)亂碼問題
這篇文章主要介紹了escape函數(shù)解決js中ajax傳遞中文出現(xiàn)亂碼問題,是非常實(shí)用的技巧,需要的朋友可以參考下2014-10-10JavaScript實(shí)現(xiàn)離開頁(yè)面前提示功能【附j(luò)Query實(shí)現(xiàn)方法】
這篇文章主要介紹了JavaScript實(shí)現(xiàn)離開頁(yè)面前提示功能,結(jié)合具體實(shí)例形式分析了javascript實(shí)現(xiàn)針對(duì)關(guān)閉頁(yè)面的事件響應(yīng)原理與操作技巧,并附帶jQuery的相應(yīng)實(shí)現(xiàn)方法,需要的朋友可以參考下2017-09-09經(jīng)典的間隔時(shí)間滾動(dòng)新聞(圖片),可控制滾動(dòng)
經(jīng)典的間隔時(shí)間滾動(dòng)新聞(圖片),可控制滾動(dòng) 其實(shí)這個(gè)也挺多網(wǎng)站用到的,簡(jiǎn)單又實(shí)用。(2010-05-05Javascript 變量作用域 兩個(gè)可能會(huì)被忽略的小特性
關(guān)于Javascript,大家肯定都很熟悉啦,對(duì)于有編程經(jīng)驗(yàn)的朋友來(lái)說,Javascript很快就能上手,不過關(guān)于JS的變量作用域,還是有一點(diǎn)差別的。2010-03-03js實(shí)現(xiàn)前面自動(dòng)補(bǔ)全位數(shù)的方法
今天小編就為大家分享一篇js實(shí)現(xiàn)前面自動(dòng)補(bǔ)全位數(shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-10-10詳解JavaScript面向?qū)ο髮?shí)戰(zhàn)之封裝拖拽對(duì)象
本文主要介紹了JavaScript如何用面向?qū)ο蟮姆绞椒庋b拖拽對(duì)象,通過3種方式來(lái)實(shí)現(xiàn),幫助讀者更好的理解其原理2021-06-06