微信小程序實現藍牙打印

最近剛好完成了一個打印標簽的項目,其中就涉及到了小程序的藍牙功能。所以寫下這篇粗略的文章記錄一下,同時也是給即將做相關項目的親們提供一個參考,也希望有什么描述不恰當或者技術上不正確的地方大家可以指出,一起進步。

公司主營業務:做網站、成都網站建設、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。創新互聯公司是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創新互聯公司推出遠安免費做網站回饋大家。

藍牙打印只要按這九個步驟(前六個步驟連接藍牙,后三個步驟打印數據)就可以搞定啦!步驟如下:

第一步:初始化藍牙模塊 wx.openBluetoothAdapter

wx.openBluetoothAdapter({
 success (res) {
 console.log(res)//res:{errMsg: "openBluetoothAdapter:ok"}
 }
})

第二步:開始搜尋附近的藍牙外圍設備 wx.startBluetoothDevicesDiscovery

wx.startBluetoothDevicesDiscovery({
 //services: ['FEE7'],只搜索主服務 UUID 為 FEE7 的設備,如果明確知道主服務UUID可以用此項做篩選
 success (res) {
 console.log(res)//res:{errCode: 0, errMsg: "startBluetoothDevicesDiscovery:ok", isDiscovering: true}
 }
})

第三步:獲取已搜素到的藍牙設備列表 wx.getBluetoothDevices

wx.getBluetoothDevices({
 success: function (res) {
 console.log(res)//res:{errMsg: "getBluetoothDevices:ok", devices: Array(3)}
 }
})

第四步:監聽尋找到新設備的事件 wx.onBluetoothDeviceFound(有時候會第三步會搜不到所以需要使用監聽器去隨時監聽搜索到的藍牙設備并返回給你)

wx.onBluetoothDeviceFound(function(res) {
 console.log(res)//res:{devices: Array(1)}
})

第五步:連接藍牙設備 wx.createBLEConnection

wx.createBLEConnection({
 deviceId,//上面選擇藍牙設備的deviceId,例:連接第一個設備devices[0].deviceId
 success (res) {
 console.log(res)//{errCode: 0, errMsg: "createBLEConnection:ok"}
 }
})

第六步:停止搜尋附近的藍牙外圍設備 wx.stopBluetoothDevicesDiscovery(可以寫在第五步成功回調之后,或者是

onUnload()函數里)
wx.stopBluetoothDevicesDiscovery({
 success (res) {
 console.log(res)
 }
})

第七步:獲取藍牙設備所有服務 wx.getBLEDeviceServices

wx.getBLEDeviceServices({
 deviceId,//已連接的藍牙設備ID
 success (res) {
 console.log(res)//{errMsg: "getBLEDeviceServices:ok", services: Array(5), errCode: 0}
 }
})
//這邊獲取到了5個服務

第八步:獲取藍牙設備中某一個服務的所有特征值 wx.getBLEDeviceCharacteristics

var characteristics="";
wx.getBLEDeviceCharacteristics({
 deviceId,
 serviceId,//第七步的服務ID,
 success (res) {
 //res:{errMsg: "getBLEDeviceCharacteristics:ok", characteristics: Array(4), errCode: 0}
 //characteristics[0].properties: {read: true, write: false, notify: false, indicate: false}
 //特征值有好幾種類型,我們這邊打印需要的是item.properties.write為true的特征值
 for (var i = 0; i < res.characteristics.length; i++) {
 var item = res.characteristics[i];
 if (item.properties.write) {
 characteristics = item.uuid;
 }
 }
 //保存特征值
 }
})

第九步:向藍牙設備特征值中寫入數據 wx.writeBLECharacteristicValue

wx.writeBLECharacteristicValue({
 deviceId,
 serviceId,
 characteristicId,//上面保存的特征值
 value: buffer, // 這里的value是ArrayBuffer類型,中間層傳過來的打印數據前端自己做轉換,轉換過程我這邊就不描述了;
 success (res) {
 console.log('writeBLECharacteristicValue success', res.errMsg)
 }
})
//特別提醒建議每次寫入的buffer不超過20字節,超過會有寫入錯誤的風險,所以一個打印的內容可能要拆成N個20字節的buffer去循環writeBLECharacteristicValue,這樣就能打印成功啦。

附:

微信小程序官方文檔

示例代碼(uniapp實現小程序藍牙打印簡易流程)

另注:無論是原生、WePY、mpvue或uniapp、調用步驟都是一樣的,不過調用API的前綴需要改成對應的就OK了

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。

文章名稱:微信小程序實現藍牙打印
文章出自:http://m.kartarina.com/article40/jedheo.html

成都網站建設公司_創新互聯,為您提供企業建站網站設計微信公眾號自適應網站品牌網站建設面包屑導航

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都app開發公司
主站蜘蛛池模板: 亚洲av无码一区二区三区乱子伦| 麻豆aⅴ精品无码一区二区| 亚洲中文无码卡通动漫野外 | 中文字幕无码AV波多野吉衣| 一本加勒比hezyo无码专区| 中文AV人妻AV无码中文视频 | 亚洲精品无码高潮喷水在线| 精品久久久久久久无码| 亚洲男人第一无码aⅴ网站| 亚洲国产成AV人天堂无码 | 亚洲av无码成人黄网站在线观看| 亚洲AV无码一区二区大桥未久| 亚洲成AV人在线播放无码| 国产精品无码v在线观看| 亚洲aⅴ天堂av天堂无码麻豆 | aⅴ一区二区三区无卡无码| 中文无码亚洲精品字幕| 免费无码中文字幕A级毛片| 丝袜无码一区二区三区| 精品久久久无码人妻中文字幕豆芽 | 国产又爽又黄无码无遮挡在线观看| 亚洲aⅴ无码专区在线观看| 久久无码国产专区精品| 亚洲AV永久无码精品| 亚洲成a人片在线观看无码 | 在线观看免费无码专区| 国产高新无码在线观看| 午夜无码人妻av大片色欲| 日韩av无码成人无码免费| 亚洲日韩乱码中文无码蜜桃臀| 无码视频在线观看| 亚洲AV永久无码精品水牛影视| 亚洲午夜福利AV一区二区无码| 亚洲一区无码中文字幕| 国产成人麻豆亚洲综合无码精品| 国产在线观看无码免费视频 | 亚洲国产无套无码av电影| 亚洲成av人片在线观看无码不卡| 国内精品久久久久久无码不卡| 日韩少妇无码喷潮系列一二三 | 亚洲av中文无码|