用微信小程序怎么开发蓝牙BLE

用微信小程序怎么开发蓝牙BLE,第1张

蓝牙适配器接口是基础库版本 110 开始支持。

iOS 微信客户端 656 版本开始支持,Android 客户端暂不支持

蓝牙总共增加了18个api接口。

Api分类

搜索类

连接类

通信类

案例实现

搜索蓝牙设备

/

搜索设备界面

/

Page({

data: {

logs: [],

list:[],

},

onLoad: function () {

consolelog('onLoad')

var that = this;

// const SDKVersion = wxgetSystemInfoSync()SDKVersion || '100'

// const [MAJOR, MINOR, PATCH] = SDKVersionsplit('')map(Number)

// consolelog(SDKVersion);

// consolelog(MAJOR);

// consolelog(MINOR);

// consolelog(PATCH);

// const canIUse = apiName => {

// if (apiName === 'showModalcancel') {

// return MAJOR >= 1 && MINOR >= 1

// }

// return true

// }

// wxshowModal({

// success: function(res) {

// if (canIUse('showModalcancel')) {

// consolelog(rescancel)

// }

// }

// })

//获取适配器

wxopenBluetoothAdapter({

success: function(res){

// success

consolelog("-----success----------");

consolelog(res);

//开始搜索

wxstartBluetoothDevicesDiscovery({

services: [],

success: function(res){

// success

consolelog("-----startBluetoothDevicesDiscovery--success----------");

consolelog(res);

},

fail: function(res) {

// fail

consolelog(res);

},

complete: function(res) {

// complete

consolelog(res);

}

})

},

fail: function(res) {

consolelog("-----fail----------");

// fail

consolelog(res);

},

complete: function(res) {

// complete

consolelog("-----complete----------");

consolelog(res);

}

})

wxgetBluetoothDevices({

success: function(res){

// success

//{devices: Array[11], errMsg: "getBluetoothDevices:ok"}

consolelog("getBluetoothDevices");

consolelog(res);

thatsetData({

list:resdevices

});

consolelog(thatdatalist);

},

fail: function(res) {

// fail

},

complete: function(res) {

// complete

}

})

},

onShow:function(){

},

//点击事件处理

bindViewTap: function(e) {

consolelog(ecurrentTargetdatasettitle);

consolelog(ecurrentTargetdatasetname);

consolelog(ecurrentTargetdatasetadvertisData);

var title = ecurrentTargetdatasettitle;

var name = ecurrentTargetdatasetname;

wxredirectTo({

url: '/conn/conndeviceId='+title+'&name='+name,

success: function(res){

// success

},

fail: function(res) {

// fail

},

complete: function(res) {

// complete

}

})

},

})

连接 获取数据

/

连接设备。获取数据

/

Page({

data: {

motto: 'Hello World',

userInfo: {},

deviceId: '',

name: '',

serviceId: '',

services: [],

cd20: '',

cd01: '',

cd02: '',

cd03: '',

cd04: '',

characteristics20: null,

characteristics01: null,

characteristics02: null,

characteristics03: null,

characteristics04: null,

result,

},

onLoad: function (opt) {

var that = this;

consolelog("onLoad");

consolelog('deviceId=' + optdeviceId);

consolelog('name=' + optname);

thatsetData({ deviceId: optdeviceId });

/

监听设备的连接状态

/

wxonBLEConnectionStateChanged(function (res) {

consolelog(`device ${resdeviceId} state has changed, connected: ${resconnected}`)

})

/

连接设备

/

wxcreateBLEConnection({

deviceId: thatdatadeviceId,

success: function (res) {

// success

consolelog(res);

/

连接成功,后开始获取设备的服务列表

/

wxgetBLEDeviceServices({

// 这里的 deviceId 需要在上面的 getBluetoothDevices中获取

deviceId: thatdatadeviceId,

success: function (res) {

consolelog('device services:', resservices)

thatsetData({ services: resservices });

consolelog('device services:', thatdataservices[1]uuid);

thatsetData({ serviceId: thatdataservices[1]uuid });

consolelog('--------------------------------------');

consolelog('device设备的id:', thatdatadeviceId);

consolelog('device设备的服务id:', thatdataserviceId);

/

延迟3秒,根据服务获取特征

/

setTimeout(function () {

wxgetBLEDeviceCharacteristics({

// 这里的 deviceId 需要在上面的 getBluetoothDevices

deviceId: thatdatadeviceId,

// 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取

serviceId: thatdataserviceId,

success: function (res) {

consolelog('000000000000' + thatdataserviceId);

consolelog('device getBLEDeviceCharacteristics:', rescharacteristics)

for (var i = 0; i < 5; i++) {

if (rescharacteristics[i]uuidindexOf("cd20") != -1) {

thatsetData({

cd20: rescharacteristics[i]uuid,

characteristics20: rescharacteristics[i]

});

}

if (rescharacteristics[i]uuidindexOf("cd01") != -1) {

thatsetData({

cd01: rescharacteristics[i]uuid,

characteristics01: rescharacteristics[i]

});

}

if (rescharacteristics[i]uuidindexOf("cd02") != -1) {

thatsetData({

cd02: rescharacteristics[i]uuid,

characteristics02: rescharacteristics[i]

});

} if (rescharacteristics[i]uuidindexOf("cd03") != -1) {

thatsetData({

cd03: rescharacteristics[i]uuid,

characteristics03: rescharacteristics[i]

});

}

if (rescharacteristics[i]uuidindexOf("cd04") != -1) {

thatsetData({

cd04: rescharacteristics[i]uuid,

characteristics04: rescharacteristics[i]

});

}

}

consolelog('cd01= ' + thatdatacd01 + 'cd02= ' + thatdatacd02 + 'cd03= ' + thatdatacd03 + 'cd04= ' + thatdatacd04 + 'cd20= ' + thatdatacd20);

/

回调获取 设备发过来的数据

/

wxonBLECharacteristicValueChange(function (characteristic) {

consolelog('characteristic value comed:', characteristicvalue)

//{value: ArrayBuffer, deviceId: "D8:00:D2:4F:24:17", serviceId: "ba11f08c-5f14-0b0d-1080-007cbe238851-0x600000460240", characteristicId: "0000cd04-0000-1000-8000-00805f9b34fb-0x60800069fb80"}

/

监听cd04cd04中的结果

/

if (characteristiccharacteristicIdindexOf("cd01") != -1) {

const result = characteristicvalue;

const hex = thatbuf2hex(result);

consolelog(hex);

}

if (characteristiccharacteristicIdindexOf("cd04") != -1) {

const result = characteristicvalue;

const hex = thatbuf2hex(result);

consolelog(hex);

thatsetData({ result: hex });

}

})

/

顺序开发设备特征notifiy

/

wxnotifyBLECharacteristicValueChanged({

deviceId: thatdatadeviceId,

serviceId: thatdataserviceId,

characteristicId: thatdatacd01,

state: true,

success: function (res) {

// success

consolelog('notifyBLECharacteristicValueChanged success', res);

},

fail: function (res) {

// fail

},

complete: function (res) {

// complete

}

})

wxnotifyBLECharacteristicValueChanged({

deviceId: thatdatadeviceId,

serviceId: thatdataserviceId,

characteristicId: thatdatacd02,

state: true,

success: function (res) {

// success

consolelog('notifyBLECharacteristicValueChanged success', res);

},

fail: function (res) {

// fail

},

complete: function (res) {

// complete

}

})

wxnotifyBLECharacteristicValueChanged({

deviceId: thatdatadeviceId,

serviceId: thatdataserviceId,

characteristicId: thatdatacd03,

state: true,

success: function (res) {

// success

consolelog('notifyBLECharacteristicValueChanged success', res);

},

fail: function (res) {

// fail

},

complete: function (res) {

// complete

}

})

wxnotifyBLECharacteristicValueChanged({

// 启用 notify 功能

// 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取

deviceId: thatdatadeviceId,

serviceId: thatdataserviceId,

characteristicId: thatdatacd04,

state: true,

success: function (res) {

consolelog('notifyBLECharacteristicValueChanged success', res)

}

})

}, fail: function (res) {

consolelog(res);

}

})

}

, 1500);

}

})

},

fail: function (res) {

// fail

},

complete: function (res) {

// complete

}

})

},

/

发送 数据到设备中

/

bindViewTap: function () {

var that = this;

var hex = 'AA5504B10000B5'

var typedArray = new Uint8Array(hexmatch(/[\da-f]{2}/gi)map(function (h) {

return parseInt(h, 16)

}))

consolelog(typedArray)

consolelog([0xAA, 0x55, 0x04, 0xB1, 0x00, 0x00, 0xB5])

var buffer1 = typedArraybuffer

consolelog(buffer1)

wxwriteBLECharacteristicValue({

deviceId: thatdatadeviceId,

serviceId: thatdataserviceId,

characteristicId: thatdatacd20,

value: buffer1,

success: function (res) {

// success

consolelog("success 指令发送成功");

consolelog(res);

},

fail: function (res) {

// fail

consolelog(res);

},

complete: function (res) {

// complete

}

})

},

/

ArrayBuffer 转换为 Hex

/

buf2hex: function (buffer) { // buffer is an ArrayBuffer

return Arrayprototypemapcall(new Uint8Array(buffer), x => ('00' + xtoString(16))slice(-2))join('');

}

})

效果展示

发送校验指令。获取结果

在微信709版本中,没有蓝牙权限选项,手机开启蓝牙功能后,微信便可以通过蓝牙和智能手表同步信息,微信可以开启NFC权限,在微信709版本中,打开软件,点击我,点击设置,进入通用设置页面,找到“开启NFC功能”选项,将该功能开启即可使用。

微信使用技巧:1、微信具有二维码收款功能,打开软件,点击页面右下角的“我”,点击“支付”,点击“收付款”按钮,点击立即开启即可使用二维码收款。

2、微信可以查看拍摄过的视频,打开软件,点击页面右下角的“我”,点击相册即可查看。

3、在微信首页下拉,可以找到微信小程序入口,也可以点击“发现”按钮,在d出页面可以看到小程序入口。

4、微信语音发不出去,可能是网络不稳定导致,可以切换网络;可能是软件出现bug,可以重启软件。

资料拓展:微信是一款即时通讯软件,使用者可以通过微信客户端与好友分享文字、以及贴图,并支持分组聊天和语音、视频对讲、广播(一对多)消息、照片共享、位置共享、微信支付、理财通,游戏等服务。

连接蓝牙设备,需要使用微信的wxcreateBLEConnection接口,参数为蓝牙设备的deviceId(这个参数在搜索的设备信息里面可以直接拿到)。

2 在blejs里面新增connect、disconnect、getDevConStatus三个接口,用以统一管理设备连接和设备断开,因为在安卓平台上,重复去连接会导致设备没有办法断开连接。所以在blejs里面还维护了一个连接/正在连接的设备数组,方便统一管理设备。当调用connect的时候,会先去这个数组里面查找是否有该设备,如果有就不再去调用连接了。当调用disconnect或者设备被动断开,会把该设备从这个数组里面删除。

题主是否想询问“微信小程序功耗蓝牙界面不响应解决方法”方法如下:

1、蓝牙连接失败:是因为设备未打开蓝牙或蓝牙信号不稳定等问题导致连接失败。可以尝试重新连接,或者检查设备是否支持蓝牙连接,并检查设备蓝牙设置。

2、小程序代码问题:是因为小程序代码存在错误或者逻辑问题导致蓝牙连接界面不响应。可以检查小程序代码,找出问题所在,并进行修复。

3、小程序权限问题:是因为小程序未被授予使用蓝牙的权限,或者未获得足够的系统权限,导致无法连接蓝牙设备。可以检查小程序权限设置,并确保已经授权使用蓝牙。

重新连接。

有时候在显示过程中打开蓝牙,小程序未能及时接收到信息,从而出现打开仍旧提醒的情况。

具体步骤:设置---权限管理--微信--开启蓝牙--允许“。

打开蓝牙开关。

查看收是否打开了蓝牙开关,再看一下微信app是否允许使用了蓝牙的选项。

腾讯微信(faq)是一种更快速的短邮,具有跨平台沟通、显示实时输入状态等功能,与传统的短信沟通方式相比,更灵活、智能,且节省资费。

以上就是关于用微信小程序怎么开发蓝牙BLE全部的内容,包括:用微信小程序怎么开发蓝牙BLE、微信蓝牙权限在哪打开、蓝牙微信小程序ble用那个搜索等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9470740.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存