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设备的uuid
success: 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 = this
if (res.beacons.length > 0) {
wx.stopBeaconDiscovery({
success: function (res) {
console.log('停止搜索 iBeacon 设备',res);
},
fail: function (res) {
console.log('停止搜索 iBeacon 设备失败');
}
});
let devices = this.data.devices
devices.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