1.首先在utils文件夹下创建bluetooth.js和ibeacon.js
2.在 bluetooth.js文件中写入
module.exports = {initBluetooth: function () {// 初始化蓝牙模块wx.openBluetoothAdapter({success: function (res) {console.log('蓝牙模块初始化成功');},fail: function (res) {console.log('蓝牙模块初始化失败');}});}
}
3.在 ibeacon.js中写入
module.exports = {registerIBeaconCallback: function (callback) {// 注册iBeacon回调函数wx.onBeaconUpdate(function (res) {callback(res);});// 开始搜索iBeacon设备wx.startBeaconDiscovery({uuids: ['FDA50693-A4E2-4FB1-AFCF-C6EB07647826'], // iBeacon设备的uuidsuccess: function (res) {console.log('开始搜索iBeacon设备');},fail: function (res) {console.log('搜索iBeacon设备失败');}});},}
4.在需要获取蓝牙的wxml中的page上方引入
const bluetooth = require('../../utils/bluetooth');
const ibeacon = require('../../utils/ibeacon');
5.在下方onshow事件中调用
bluetooth.initBluetooth();// 注册iBeacon回调函数ibeacon.registerIBeaconCallback(this.handleIBeacon);
6.在page内写入获取ibeacon设备代码及停止搜索
handleIBeacon: function (res) {// 处理搜索到的iBeacon设备 let _this = thisif (res.beacons.length > 0) {wx.stopBeaconDiscovery({success: function (res) {console.log('停止搜索 iBeacon 设备',res);},fail: function (res) {console.log('停止搜索 iBeacon 设备失败');}});let devices = this.data.devicesdevices.push(res.beacons[0].uuid)this.setData({devices: devices})console.log(this.data.devices);}// 在这里可以对搜索到的设备进行进一步处理},
7.最后如果想检测蓝牙是否连接可以加上 wx.onBluetoothAdapterStateChange事件
wx.onBluetoothAdapterStateChange(function(res) {console.log("蓝牙适配器状态变化", res);if (res.available) {console.log("蓝牙适配器可用");} else {console.log("蓝牙适配器不可用");}});
8.如果出现报错,则需要安装 npm install @babel/runtime,或检查是否正确引用了@babel/runtime/helpers/defineProperty.js
模块
module '@babel/runtime/helpers/defineProperty.js' is not defined, require args is '../../@babel/runtime/helpers/defineProperty' Error: module '@babel/runtime/helpers/defineProperty.js' is not defined, require args is