本文实例为大家分享了小程序获取周围IBeacon设备的具体代码,供大家参考,具体内容如下
该功能实现需要使用以下API:
wx.startBeaconDiscovery(OBJECT):开始搜索附近的iBeacon设备
wx.stopBeaconDiscovery(OBJECT):停止搜索附近的iBeacon设备
wx.onBeaconUpdate(CALLBACK):监听 iBeacon 设备的更新事件
wx.openBluetoothAdapter(OBJECT):监听蓝牙状态
wx.onBluetoothDeviceFound(CALLBACK):监听蓝牙状态切换
具体参数以及回调函数请参考官方API
实现逻辑:
实现代码 index.js:
onShow : function(){ var that = this; //监测蓝牙状态的改变 wx.onBluetoothAdapterStateChange(function (res) { if (res.available) {//如果用户打开蓝牙,开始搜索IBeacon searchBeacon(); } }) //搜索beacons searchBeacon(); //搜索函数 function searchBeacon() { //检测蓝牙状态 wx.openBluetoothAdapter({ success: function (res) {//蓝牙状态:打开 wx.startBeaconDiscovery({//开始搜索附近的iBeacon设备 uuids: ['FDA50693-A4E2-4FB1-AFCF-C6EB07647825'],//参数uuid success: function (res) { wx.onBeaconUpdate(function (res) {//监听 iBeacon 设备的更新事件 //封装请求数据 var beacons = res.beacons; var reqContent = {}; var bleArray = []; for (var i = 0; i < beacons.length; i++) { var bleObj = {}; bleObj.distance = beacons[i].accuracy; bleObj.rssi = beacons[i].rssi; bleObj.mac = beacons[i].major + ":" + beacons[i].minor; bleArray.push(bleObj); } reqContent.ble = bleArray; //请求后台向redis插入数据 redisSave(reqContent); }); }, fail: function (res) { //先关闭搜索再重新开启搜索,这一步操作是防止重复wx.startBeaconDiscovery导致失败 stopSearchBeacom(); } }) }, fail: function (res) {//蓝牙状态:关闭 wx.showToast({ title: "请打开蓝牙", icon: "none", duration: 2000 }) } }) } function redisSave(reqContent) { wx.request({ url: "https://map.intmote.com/LocateServer/location.action", data: JSON.stringify(reqContent), method: 'POST', header: { 'Content-type': 'application/json' }, success: function (res) { // wx.showToast({ title: "seccess" }) }, fail: function (res) { // wx.showToast({ title: "1" }) } }); } //关闭成功后开启搜索 function stopSearchBeacom() { wx.stopBeaconDiscovery({ success: function () { searchBeacon(); } }) } },
介绍小程序的页面生命周期函数之一:onShow
监听页面显示:即每次打开页面都会调用一次。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com
暂无“小程序获取周围IBeacon设备的方法”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。