加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

微信小程序 蓝牙的实现实例代码

发布时间:2020-12-14 20:14:42 所属栏目:资源 来源:网络整理
导读:微信小程序 蓝牙的实现实例代码 1.简述 蓝牙适配器接口是基础库版本 1.1.0 开始支持。 iOS 微信客户端 6.5.6 版本开始支持,Android 客户端暂不支持 蓝牙总共增加了18个api接口。 2.Api分类 搜索类 连接类 通信类 3.API的具体使用 详细见官网: https://mp.w

微信小程序 蓝牙的实现实例代码

1.简述

蓝牙适配器接口是基础库版本 1.1.0 开始支持。 iOS 微信客户端 6.5.6 版本开始支持,Android 客户端暂不支持 蓝牙总共增加了18个api接口。

2.Api分类

搜索类 连接类 通信类

3.API的具体使用

详细见官网:

https://mp.weixin.qq.com/debug/wxadoc/dev/api/bluetooth.html#wxgetconnectedbluethoothdevicesobject

4. 案例实现

4.1 搜索蓝牙设备

// const canIUse = apiName => {
// if (apiName === 'showModal.cancel') {
// return MAJOR >= 1 && MINOR >= 1
// }
// return true
// }

// wx.showModal({
// success: function(res) {
// if (canIUse('showModal.cancel')) {
// console.log(res.cancel)
// }
// }
// })
//获取适配器
wx.openBluetoothAdapter({
success: function(res){
// success
console.log("-----success----------");
console.log(res);
//开始搜索
wx.startBluetoothDevicesDiscovery({
services: [],success: function(res){
// success
console.log("-----startBluetoothDevicesDiscovery--success----------");
console.log(res);
},fail: function(res) {
// fail
console.log(res);
},complete: function(res) {
// complete
console.log(res);
}
})

},fail: function(res) {
console.log("-----fail----------");
// fail
console.log(res);
},complete: function(res) {
// complete
console.log("-----complete----------");
console.log(res);
}
})

wx.getBluetoothDevices({
success: function(res){
// success
//{devices: Array[11],errMsg: "getBluetoothDevices:ok"}
console.log("getBluetoothDevices");
console.log(res);
that.setData({
list:res.devices
});
console.log(that.data.list);
},fail: function(res) {
// fail
},complete: function(res) {
// complete
}
})

},onShow:function(){

},//点击事件处理
bindViewTap: function(e) {
console.log(e.currentTarget.dataset.title);
console.log(e.currentTarget.dataset.name);
console.log(e.currentTarget.dataset.advertisData);

var title = e.currentTarget.dataset.title;
var name = e.currentTarget.dataset.name;
wx.redirectTo({
url: '../conn/conn?deviceId='+title+'&name='+name,success: function(res){
// success
},complete: function(res) {
// complete
}
})
},})

4.2连接 获取数据

}) /** * 顺序开发设备特征notifiy */ wx.notifyBLECharacteristicValueChanged({ deviceId: that.data.deviceId,serviceId: that.data.serviceId,characteristicId: that.data.cd01,state: true,success: function (res) { // success console.log('notifyBLECharacteristicValueChanged success',res); },fail: function (res) { // fail },complete: function (res) { // complete } }) wx.notifyBLECharacteristicValueChanged({ deviceId: that.data.deviceId,characteristicId: that.data.cd02,characteristicId: that.data.cd03,complete: function (res) { // complete } }) wx.notifyBLECharacteristicValueChanged({ // 启用 notify 功能 // 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取 deviceId: that.data.deviceId,characteristicId: that.data.cd04,success: function (res) { console.log('notifyBLECharacteristicValueChanged success',res) } }) },fail: function (res) { console.log(res); } }) },1500); } }) },fail: function (res) { // fail },complete: function (res) { // complete } })

},/**

  • 发送 数据到设备中
    */
    bindViewTap: function () {
    var that = this;
    var hex = 'AA5504B10000B5'
    var typedArray = new Uint8Array(hex.match(/[da-f]{2}/gi).map(function (h) {
    return parseInt(h,16)
    }))
    console.log(typedArray)
    console.log([0xAA,0x55,0x04,0xB1,0x00,0xB5])
    var buffer1 = typedArray.buffer
    console.log(buffer1)
    wx.writeBLECharacteristicValue({
    deviceId: that.data.deviceId,characteristicId: that.data.cd20,value: buffer1,success: function (res) {
    // success
    console.log("success 指令发送成功");
    console.log(res);
    },fail: function (res) {
    // fail
    console.log(res);
    },complete: function (res) {
    // complete
    }
    })

},/**

  • ArrayBuffer 转换为 Hex
    */
    buf2hex: function (buffer) { // buffer is an ArrayBuffer
    return Array.prototype.map.call(new Uint8Array(buffer),x => ('00' + x.toString(16)).slice(-2)).join('');
    }
    })

5.效果展示

发送校验指令。获取结果

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读