微信小程序 蓝牙开发 Demo 插件

微信小程序蓝牙操作

由于开发要求,要在微信小程序加上蓝牙操作,于是乎就自己写了个封装了个蓝牙插件bletool,方便自己以后使用,下面介绍一下使用方法和反馈参数

先来看初始化

集成之后蓝牙的操作就变得简单很多了,先把写好的bletool.js放到utils包下(具体放哪看你们自己的了)

var Bletool  = require("../../utils/bletool.js");  //引进js

初始化操作,调用initble方法,第一个参数是初始化成功的回调,回调内容为一个json{return_code : “”,msg:“”} return_code:为0时为成功,msg返回的是操作信息,初第二个参数为蓝牙状态改变的回调,回传参数和官方的没有差异,第三个参数为蓝牙连接状态改变的回调,回传参数与官方的一致

扫描蓝牙,调用startScanle方法,第一个参数为发现新设备的回调,回调参数为新的设备信息,第二个参数为扫面结束时间,我这里设置的是10秒结束,要注意的是初始化后要等待1秒左右才去扫描才行

  bleUtil = new Bletool();    
    bleUtil.initble(function(res){
      console.log(res);
      if (res.return_code == "0") {
        setTimeout(function (res) {
          bleUtil.startScanle(function (res) {
            console.log(res);
            var devices = that.data.device;
            var num = that.data.devicename;
            devices[num] = res.devices; 
            console.log(devices);
            that.setData({
              device:devices,
              devicename: num+1
            });
          },10000);
        }, 1000);
      } else {
        wx.showToast({
          title: '请先打开蓝牙',
          icon: "none"
        })
      }   
    },function(res){
      console.log(res); 

    },function(res){
      console.log(res);

    });

停止扫描,调用stopScanle()方法即可

  bleUtil.stopScanle();

连接设备,调用connect(),两个参数 ,第一个参数为蓝牙设备的设备id,第二个参数为接收蓝牙设备回传信息的回调,与官方onBLECharacteristicValueChange回传值一样,新增res.value.strData 为字符串的信息

 bleUtil.connect(item.deviceId,function(res){
        console.log(res);
        that.setData({
          repdata: res.value.strData
        });
      });

断开连接,调用disconnect()方法即可,返回参数为{return_code:“”,msg} return_code 为0时为操作成功,msg为具体信息

bleUtil.disconnect();

发送数据,调用sendMsg()方法,2个参数,第一个为发送的信息,第二个参数为发送回调,返回参数为{return_code:“”,msg} return_code 为0时为操作成功,msg为具体信息

 bleUtil.sendMsg("PX#",function(res){
        console.log(res);
      });

然后不用了关闭适配器就over了,调用close()方法即可,很方便吧

 if(bleUtil != null){
      bleUtil.close();
    }

我把代码放到github上面的,bletool.js在utils包下,点击就可以过去了,得切换下分支,我没放在master里

猜你喜欢

转载自blog.csdn.net/weixin_41392105/article/details/82708058