小程序获取周围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 相关文章推荐
JavaScript去掉数组中的重复元素
Jan 13 Javascript
使用jquery mobile做幻灯播放效果实现步骤
Jan 04 Javascript
解析Jquery的LigerUI如何实现文件上传
Jul 09 Javascript
21个值得收藏的Javascript技巧
Feb 04 Javascript
javascript排序函数实现数字排序
Jun 26 Javascript
jQuery数据类型小结(14个)
Jan 08 Javascript
探讨JavaScript标签位置的存放与功能有无关系
Jan 15 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
May 19 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
Apr 13 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
Oct 26 jQuery
Vue实现boradcast和dispatch的示例
Nov 13 Javascript
使用Ajax实现无刷新上传文件
Apr 12 Javascript
详解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商品对比功能代码分享
2015/09/24 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
php微信扫码支付 php公众号支付
2019/03/24 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
IE php关于强制下载文件的代码
2008/08/23 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
微信小程序开发探究
2016/12/27 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
2017/12/19 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
python操作ie登陆土豆网的方法
2015/05/09 Python
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
Python绘制3D图形
2018/05/03 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
python读取xml文件方法解析
2020/08/04 Python
简述 Python 的类和对象
2020/08/21 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
政法大学毕业生自荐信范文
2014/01/01 职场文书
奠基仪式策划方案
2014/05/15 职场文书
区域销售主管岗位职责
2014/06/15 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
老兵退伍标语
2014/10/07 职场文书
工程项目经理岗位职责
2015/02/02 职场文书
质量保证书格式模板
2015/02/27 职场文书
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS