小程序获取周围IBeacon设备的方法


Posted in Javascript onOctober 31, 2018

本文实例为大家分享了小程序获取周围IBeacon设备的具体代码,供大家参考,具体内容如下

该功能实现需要使用以下API:

wx.startBeaconDiscovery(OBJECT):开始搜索附近的iBeacon设备

wx.stopBeaconDiscovery(OBJECT):停止搜索附近的iBeacon设备

wx.onBeaconUpdate(CALLBACK):监听 iBeacon 设备的更新事件

wx.openBluetoothAdapter(OBJECT):监听蓝牙状态

wx.onBluetoothDeviceFound(CALLBACK):监听蓝牙状态切换

具体参数以及回调函数请参考官方API

实现逻辑:

小程序获取周围IBeacon设备的方法

实现代码 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

监听页面显示:即每次打开页面都会调用一次。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
懒就要懒到底——鼠标自动点击(含时间判断)
Feb 20 Javascript
发一个自己用JS写的实用看图工具实现代码
Jul 26 Javascript
JavaScript 继承机制的实现(待续)
May 18 Javascript
js 页面关闭前的出现提示的实现代码
May 25 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
Oct 20 Javascript
jquery实现的省市区三级联动
Apr 02 Javascript
实例解析Array和String方法
Dec 14 Javascript
jQuery焦点图轮播效果实现方法
Dec 19 Javascript
vue-star评星组件开发实例
Mar 01 Javascript
JavaScript设计模式之职责链模式应用示例
Aug 07 Javascript
JS实现十分钟倒计时代码实例
Oct 18 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
详解js删除数组中的指定元素
Oct 31 #Javascript
Vue中使用方法、计算属性或观察者的方法实例详解
Oct 31 #Javascript
Vue项目History模式404问题解决方法
Oct 31 #Javascript
Vue.js中对css的操作(修改)具体方式详解
Oct 30 #Javascript
vue组件中的样式属性scoped实例详解
Oct 30 #Javascript
node上的redis调用优化示例详解
Oct 30 #Javascript
elementUI 设置input的只读或禁用的方法
Oct 30 #Javascript
You might like
如何获得PHP相关资料
2006/10/09 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
PHP精确计算功能示例
2016/11/29 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
javascript一点特殊用法
2008/05/28 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
JavaScript中的连字符详解
2013/11/28 Javascript
JavaScript中的undefined学习总结
2013/11/30 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
2019/07/13 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
python中os包的用法
2020/06/01 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
奉献演讲稿范文
2014/05/21 职场文书
设计专业自荐信
2014/06/19 职场文书
公司员工体检通知
2015/04/21 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python