最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序?qū)崿F(xiàn)藍(lán)牙打印

 更新時間:2019年09月23日 09:46:36   作者:泠青云  
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)藍(lán)牙打印,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

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

第一步:初始化藍(lán)牙模塊 wx.openBluetoothAdapter

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

第二步:開始搜尋附近的藍(lán)牙外圍設(shè)備 wx.startBluetoothDevicesDiscovery

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

第三步:獲取已搜素到的藍(lán)牙設(shè)備列表 wx.getBluetoothDevices

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

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

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

第五步:連接藍(lán)牙設(shè)備 wx.createBLEConnection

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

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

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

第七步:獲取藍(lán)牙設(shè)備所有服務(wù) wx.getBLEDeviceServices

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

第八步:獲取藍(lán)牙設(shè)備中某一個服務(wù)的所有特征值 wx.getBLEDeviceCharacteristics

var characteristics="";
wx.getBLEDeviceCharacteristics({
 deviceId,
 serviceId,//第七步的服務(wù)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;
 }
 }
 //保存特征值
 }
})

第九步:向藍(lán)牙設(shè)備特征值中寫入數(shù)據(jù) wx.writeBLECharacteristicValue

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

附:

微信小程序官方文檔

示例代碼(uniapp實現(xiàn)小程序藍(lán)牙打印簡易流程)

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • js實現(xiàn)繼承的5種方式

    js實現(xiàn)繼承的5種方式

    這篇文章主要介紹了js實現(xiàn)繼承的5種方式,具體分析了JavaScript對象冒充、call()方法方式、apply()方法方式、原型鏈方式及混合方式的具體使用技巧,需要的朋友可以參考下
    2015-12-12
  • javascript實現(xiàn)根據(jù)時間段顯示問候語的方法

    javascript實現(xiàn)根據(jù)時間段顯示問候語的方法

    這篇文章主要介紹了javascript實現(xiàn)根據(jù)時間段顯示問候語的方法,涉及javascript時間與字符串的相關(guān)操作技巧,需要的朋友可以參考下
    2015-06-06
  • javascript頁面加載完執(zhí)行事件代碼

    javascript頁面加載完執(zhí)行事件代碼

    本篇文章主要是對javascript頁面加載完執(zhí)行事件的代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • 基于JS實現(xiàn)移動端左滑刪除功能

    基于JS實現(xiàn)移動端左滑刪除功能

    最近做個項目,需要實現(xiàn)移動端左滑刪除功能,當(dāng)時js代碼將網(wǎng)上找的進行刪減優(yōu)化,下面通過本文給大家分享基于JS實現(xiàn)移動端左滑刪除功能,感興趣的朋友一起看看
    2017-07-07
  • layui復(fù)選框限制選擇個數(shù)的方法

    layui復(fù)選框限制選擇個數(shù)的方法

    今天小編就為大家分享一篇layui復(fù)選框限制選擇個數(shù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • JavaScript轉(zhuǎn)換數(shù)據(jù)庫DateTime字段類型方法

    JavaScript轉(zhuǎn)換數(shù)據(jù)庫DateTime字段類型方法

    下面小編就為大家?guī)硪黄狫avaScript轉(zhuǎn)換數(shù)據(jù)庫DateTime字段類型方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • js(JavaScript)實現(xiàn)TAB標(biāo)簽切換效果的簡單實例

    js(JavaScript)實現(xiàn)TAB標(biāo)簽切換效果的簡單實例

    本篇文章主要是對js(JavaScript)實現(xiàn)TAB標(biāo)簽切換效果的簡單實例進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • JavaScript實現(xiàn)小球沿正弦曲線運動

    JavaScript實現(xiàn)小球沿正弦曲線運動

    這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)小球沿正弦曲線運動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 模仿JQuery sortable效果 代碼有錯但值得看看

    模仿JQuery sortable效果 代碼有錯但值得看看

    模仿JQuery sortable效果 代碼有錯但值得看看,因為時間關(guān)系,需要的朋友可以參考下。
    2009-11-11
  • vue 組件銷毀并重置的實現(xiàn)

    vue 組件銷毀并重置的實現(xiàn)

    這篇文章主要介紹了vue 組件銷毀并重置的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評論

来凤县| 桦南县| 奇台县| 富宁县| 阿克| 开阳县| 墨竹工卡县| 民乐县| 福建省| 河曲县| 海城市| 长丰县| 奉化市| 商水县| 溧阳市| 大同县| 会昌县| 寿光市| 专栏| 阜南县| 会昌县| 万源市| 克什克腾旗| 祥云县| 长泰县| 石渠县| 济南市| 武功县| 临澧县| 安陆市| 丽江市| 赤城县| 樟树市| 阳高县| 夏河县| 额济纳旗| 巴彦淖尔市| 寿宁县| 常州市| 乌什县| 明星|