uni微信小程序实现蓝牙连接设备

本文将详细介绍如何在uni-app小程序中集成和使用蓝牙功能。我们将从蓝牙的基本概念出发,逐步带领大家了解连接和操作蓝牙设备,同时分享一些实用的代码实例和注意事项,帮助开发者快速上手蓝牙开发。

具体实现思路如下:

1、因为安卓和ios的差异,安卓手机在使用wx小程序蓝牙功能时,需要在页面初始化时先打开GPS定位。

2、初始化蓝牙模块--openBluetoothAdapter。

3、定义设备搜索任务,开始搜寻附近的蓝牙外围设备--startBluetoothDevicesDiscovery,这里定义一个定时器,间隔一秒去搜索,在规定的时间内,未搜索到设备提示超时。清除定时器,调用停止搜索api暂停搜索。

4、搜索到设备时,调用getBluetoothDevices方法将搜索到所有设备存储到变量集合中去,再在页面中将搜索到设备信息以列表的形式展示出来。

5、获取设备服务uuid,连接设备,蓝牙设备不能被多次连接,所以需要在每次连接前关闭BLE连接。

6、获取设备特征值进行读写操作(notify:读,write:写)。

实现代码如下:

html部分



js实现部分

字符串转换方法

//将ArrayBuffer转换成字符串
export const ab2hex = (buffer: any) => {
    var hexArr = Array.prototype.map.call(
      new Uint8Array(buffer),
      function (bit: any) {
          return ('00' + bit.toString(16)).slice(-2)
      }
    );
    return hexArr.join('');
}

// 将字符串转换成ArrayBufer
export const string2buffer = (str: string) : ArrayBuffer => {
  if (!str) return new ArrayBuffer(0);
  let length = str.length;
  let index = 0;
  let array: any = []
  while (index < length) {
    array.push(str.substring(index, index + 2));
    index = index + 2;
  }
  const val = array.join(",");
  console.log(val);
  return new Uint8Array(array.map(function (h) {
    return parseInt(h, 16)
  })).buffer;
 }

ps: 搜索设备回调方法中的 devices.push(item) 的 判断条件最终需要根据自己的需求去另行添加!!!

你可能感兴趣的:(微信小程序,微信小程序,小程序,前端)