微信小程序藍(lán)牙連接小票打印機(jī)實(shí)例代碼詳解
1.連接藍(lán)牙
(第一次發(fā)表博客)
第一步打開藍(lán)牙并搜索附近打印機(jī)設(shè)備//
startSearch: function() { var that = this wx.openBluetoothAdapter({ success: function(res) { wx.getBluetoothAdapterState({ success: function(res) { if (res.available) { if (res.discovering) { wx.stopBluetoothDevicesDiscovery({ success: function(res) { console.log(res) } }) } that.checkPemission() } else { wx.showModal({ title: '提示', content: '本機(jī)藍(lán)牙不可用', }) } }, }) }, fail: function() { wx.showModal({ title: '提示', content: '藍(lán)牙初始化失敗,請(qǐng)打開藍(lán)牙', }) } }) }
2.將搜索到的設(shè)備列表綁定點(diǎn)擊事件并連接
bindViewTap: function(e) { var that = this wx.stopBluetoothDevicesDiscovery({ success: function(res) { console.log(res) }, }) that.setData({ serviceId: 0, writeCharacter: false, readCharacter: false, notifyCharacter: false }) var shebei = e.currentTarget.dataset.title wx.setStorageSync('shebei', shebei) wx.showLoading({ title: '正在連接', }) wx.createBLEConnection({ deviceId: e.currentTarget.dataset.title, success: function(res) { console.log(res) app.BLEInformation.deviceId = e.currentTarget.dataset.title console.log(e.currentTarget.dataset.title) that.getSeviceId() }, fail: function(e) { wx.showModal({ title: '提示', content: '連接失敗', }) console.log(e) wx.hideLoading() }, complete: function(e) { console.log(e) } }) }
3.連接成功后保存連接狀態(tài)
getSeviceId: function() { var that = this var platform = app.BLEInformation.platform console.log(app.BLEInformation.deviceId) wx.getBLEDeviceServices({ deviceId: app.BLEInformation.deviceId, success: function(res) { that.setData({ services: res.services }) that.getCharacteristics() }, fail: function(e) { console.log(e) }, complete: function(e) { console.log(e) } }) } getCharacteristics: function() { var that = this var list = that.data.services var num = that.data.serviceId var write = that.data.writeCharacter var read = that.data.readCharacter var notify = that.data.notifyCharacter wx.getBLEDeviceCharacteristics({ deviceId: app.BLEInformation.deviceId, serviceId: list[num].uuid, success: function(res) { console.log(res) for (var i = 0; i < res.characteristics.length; ++i) { var properties = res.characteristics[i].properties var item = res.characteristics[i].uuid if (!notify) { if (properties.notify) { app.BLEInformation.notifyCharaterId = item app.BLEInformation.notifyServiceId = list[num].uuid notify = true } } if (!write) { if (properties.write) { app.BLEInformation.writeCharaterId = item app.BLEInformation.writeServiceId = list[num].uuid write = true } } if (!read) { if (properties.read) { app.BLEInformation.readCharaterId = item app.BLEInformation.readServiceId = list[num].uuid read = true } } } if (!write || !notify || !read) { num++ that.setData({ writeCharacter: write, readCharacter: read, notifyCharacter: notify, serviceId: num }) if (num == list.length) { wx.showModal({ title: '提示', content: '找不到該讀寫的特征值', }) } else { that.getCharacteristics() } } else { that.openControl() } }, fail: function(e) { console.log(e) }, complete: function(e) { console.log("write:" + app.BLEInformation.writeCharaterId) console.log("read:" + app.BLEInformation.readCharaterId) console.log("notify:" + app.BLEInformation.notifyCharaterId) } }) } /** * 生命周期函數(shù)--監(jiān)聽頁面加載 */ onLoad: function(options) { app.BLEInformation.platform = app.getPlatform() }
總結(jié)
以上所述是小編給大家介紹的微信小程序藍(lán)牙連接小票打印機(jī)實(shí)例代碼詳解,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
js如何監(jiān)聽input輸入事件及使用防抖封裝函數(shù)處理方法
這篇文章主要給大家介紹了關(guān)于js如何監(jiān)聽input輸入事件及使用防抖封裝函數(shù)處理方法的相關(guān)資料,最近有一個(gè)需求,需要我們實(shí)時(shí)監(jiān)聽input輸入框中的內(nèi)容,從而帶來更好的用戶體驗(yàn),需要的朋友可以參考下2023-07-07使用indexOf等在JavaScript的數(shù)組中進(jìn)行元素查找和替換
使用slice、replace、indexOf等等在JavaScript的數(shù)組中進(jìn)行元素的查找和替換,感興趣的朋友可以學(xué)習(xí)下2013-09-09微信小程序獲取音頻時(shí)長(zhǎng)與實(shí)時(shí)獲取播放進(jìn)度問題
這篇文章主要介紹了微信小程序獲取音頻時(shí)長(zhǎng)與實(shí)時(shí)獲取播放進(jìn)度,文中給大家通過一個(gè)例子介紹了微信小程序音頻長(zhǎng)度獲取的問題,感興趣的朋友跟隨腳本之家小編一起看看吧2018-08-08javascript改變position值實(shí)現(xiàn)菜單滾動(dòng)至頂部后固定
現(xiàn)在很多網(wǎng)站都有這樣的一個(gè)效果,當(dāng)頁面滾動(dòng)到一定高度時(shí),菜單欄會(huì)固定在頁面頂部;該效果在 ie6 下不支持,因?yàn)閕e6不支持 position:fixed,效果很不錯(cuò),感興趣的朋友可以了解下啊2013-01-01傳參安全處理window.btoa base64加密,線性對(duì)稱加密
這篇文章主要介紹了傳參安全處理window.btoa base64加密,線性對(duì)稱加密,需要的朋友可以參考下2023-07-07layui form表單提交后實(shí)現(xiàn)自動(dòng)刷新
今天小編就為大家分享一篇layui form表單提交后實(shí)現(xiàn)自動(dòng)刷新,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10JavaScript字符串截取方法總結(jié)(slice、substring、substr等)
在開發(fā)中常常會(huì)需要截取字符串,而 JavaScript 提供了很多種方法實(shí)現(xiàn)截取操作,本文對(duì)各種方法做個(gè)整理,文中通過代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01[JSF]使用DataModel處理表行事件的實(shí)例代碼
在使用JSF中,最常用的恐怕就要屬于表格的處理了。使用DataModel可以方便地進(jìn)行對(duì)表行的處理:2013-08-08