微信小程序蓝牙连接小票打印机实例代码详解

1.连接蓝牙

(第一次发表博客)

第一步打开蓝牙并搜索附近打印机设备//

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: '本机蓝牙不可用',

})

}

},

})

},

fail: function() {

wx.showModal({

title: '提示',

content: '蓝牙初始化失败,请打开蓝牙',

})

}

})

}

2.将搜索到的设备列表绑定点击事件并连接

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.连接成功后保存连接状态

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)

}

})

}

/**

* 生命周期函数--监听页面加载

*/

onLoad: function(options) {

app.BLEInformation.platform = app.getPlatform()

}

 总结

以上所述是小编给大家介绍的微信小程序蓝牙连接小票打印机实例代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

以上是 微信小程序蓝牙连接小票打印机实例代码详解 的全部内容, 来源链接: utcz.com/z/358446.html

回到顶部