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