根据微信小程序官方文档搜索周边蓝牙设备接口startBluetoothDevicesDiscovery说明,搜寻附近的蓝牙外围设备。注意,该操作比较耗费系统资源,请在搜索并连接到设备后调用 stop 方法停止搜索。官方文档说搜索周边蓝牙设备比较耗费系统资源,那么本章节就着重讲解停止搜寻附近的蓝牙外围设备接口,接口如下:
wx.stopBluetoothDevicesDiscovery(OBJECT)
停止搜寻附近的蓝牙外围设备。若已经找到需要的蓝牙设备并不需要继续搜索时,建议调用该接口停止蓝牙搜索。
OBJECT参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Function | 是 | 成功则返回本机蓝牙适配器状态 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数:
参数 | 类型 | 说明 |
---|---|---|
errMsg | String | 成功:ok,错误:详细信息 |
示例代码:
wx.stopBluetoothDevicesDiscovery({ success: function (res) { console.log(res) } })
根据官方文档编写实现代码
1,打开微信小程序开发工具,编写lanya.wxml 实际上此页面类似于html页面一样,代码如下
<view class="content"> <view>日志信息: <textarea style='border:1px solid #ccc'> {{msg}} </textarea> </view> <button type="primary" class="button" bindtap="lanya1">1初始化蓝牙适配器</button> <button type="primary" class="button" bindtap="lanya2">2本机蓝牙适配状态</button> <button type="primary" class="button" bindtap="lanya3">3搜索周边蓝牙设备</button> <button type="primary" class="button" bindtap="lanya4">4获取所有周边蓝牙设备信息</button> <block wx:for="{{devices}}" wx:key="{{test}}"> <button type="primary" class="button" id="{{item.deviceId}}" style='background-color:red' bindtap="connectTO">连接蓝牙设备{{item.name}}</button> </block> <button type="primary" class="button" bindtap="lanya5">5停止搜索周边蓝牙设备</button> </view><!-- www.vxzsk.com V型知识库 原创 -->
如上述代码,新增了一个名为停止搜索周边蓝牙设备的按钮,此按钮绑定的函数名称为lanya5,此函数实现代码如下
2、打开lanya.js文件,实现wx.stopBluetoothDevicesDiscovery接口代码如下:
//停止搜索周边设备 lanya5: function () { var that = this; wx.stopBluetoothDevicesDiscovery({ success: function (res) { that.setData({ msg: "停止搜索周边设备" + "/" + JSON.stringify(res.errMsg), sousuo: res.discovering ? "在搜索。" : "未搜索。", status: res.available ? "可用。" : "不可用。", }) } }) }
如上述代码 msg变量会打印输出到页面中,效果请继续看下文。
3、启动硬件蓝牙设备(例如蓝牙打印机,蓝牙锁等),打开手机蓝牙,打开手机微信app,然后点击微信小程序开发工具头部的预览按钮,会出现一个二维码,用微信app扫描此二维码,加载小程序应用。
效果如下:
如上图所示,当点击停止搜索周边蓝牙设备按钮后,stopBluetoothDevicesDiscovery接口成功返回ok。
lanya.wxml源码
<view class="content"> <view>日志信息: <textarea style='border:1px solid #ccc'> {{msg}} </textarea> </view> <button type="primary" class="button" bindtap="lanya1">1初始化蓝牙适配器</button> <button type="primary" class="button" bindtap="lanya2">2本机蓝牙适配状态</button> <button type="primary" class="button" bindtap="lanya3">3搜索周边蓝牙设备</button> <button type="primary" class="button" bindtap="lanya4">4获取所有周边蓝牙设备信息</button> <block wx:for="{{devices}}" wx:key="{{test}}"> <button type="primary" class="button" id="{{item.deviceId}}" style='background-color:red' bindtap="connectTO">连接蓝牙设备{{item.name}}</button> </block> <button type="primary" class="button" bindtap="lanya5">5停止搜索周边蓝牙设备</button> </view>
lanya.js源码
// pages/lanya/lanya.js www.vxzsk.com V型知识库原创 Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, // 初始化蓝牙适配器 lanya1: function () { var that = this; wx.openBluetoothAdapter({ success: function (res) { console.log('初始化蓝牙适配器返回' + JSON.stringify(res)) //页面日志显示 that.setData({ msg: JSON.stringify(res) }) }, fail:function(res){ console.log('初始化蓝牙适配器失败' + JSON.stringify(res)) } }) }, // 本机蓝牙适配器状态 lanya2: function () { var that = this; wx.getBluetoothAdapterState({ success: function (res) { //页面日志显示 that.setData({ msg: "本机蓝牙适配器状态" + "/" + JSON.stringify(res.errMsg) + "==是否可用:" + res.available }) }, fail:function(res){ //页面日志显示 that.setData({ msg: "本机蓝牙适配器状态" + "/" + JSON.stringify(res.errMsg) + "==是否可用:" + res.available }) } }) }, //搜索设备 lanya3: function () { var that = this; wx.startBluetoothDevicesDiscovery({ services: ['FEE7'], success: function (res) { that.setData({ msg: "搜索设备" + JSON.stringify(res), }) console.log('搜索设备返回' + JSON.stringify(res)) } }) }, // 获取所有已发现的设备 lanya4: function () { var that = this; wx.getBluetoothDevices({ success: function (res) { that.setData({ msg: "搜索设备" + JSON.stringify(res.devices), devices: res.devices }) console.log('搜到的蓝牙设备数目:' + res.devices.length) console.log('获取到周边搜到的设备信息:' + JSON.stringify(res.devices)) } }) }, //连接设备 connectTO: function (e) { var that = this; wx.createBLEConnection({ deviceId: e.currentTarget.id, success: function (res) { console.log('连接设备返回:'+res.errMsg); that.setData({ connectedDeviceId: e.currentTarget.id, msg: "已连接" + e.currentTarget.id + '==='+'连接设备返回:'+res.errMsg, msg1: "", }) }, fail: function () { console.log("调用失败"); }, complete: function () { console.log("调用结束"); } }) console.log(that.data.connectedDeviceId); }, //停止搜索周边设备 lanya5: function () { var that = this; wx.stopBluetoothDevicesDiscovery({ success: function (res) { that.setData({ msg: "停止搜索周边设备" + "/" + JSON.stringify(res.errMsg), sousuo: res.discovering ? "在搜索。" : "未搜索。", status: res.available ? "可用。" : "不可用。", }) } }) } })
复制上述源码到工程目录下即可实现上述功能
未完待续..........
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程