小程序获取周围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中正则表达式的全局匹配模式分析
Apr 26 Javascript
js模拟select下拉菜单控件的代码
May 08 Javascript
JavaScript的继承的封装介绍
Oct 15 Javascript
JS匀速运动演示示例代码
Nov 26 Javascript
Bootstrap的Refresh Icon也spin起来
Jul 13 Javascript
利用JS实现数字增长
Jul 28 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
Aug 15 Javascript
解读ES6中class关键字
Nov 20 Javascript
vue 页面加载进度条组件实例
Feb 05 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
Jan 24 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
Sep 11 Javascript
解决vue的过渡动画无法正常实现问题
Oct 31 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压缩HTML函数轻松实现压缩html/js/Css及注意事项
2013/01/27 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
JS中数据结构之栈
2019/01/01 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
python实现360的字符显示界面
2014/02/21 Python
Python列表append和+的区别浅析
2015/02/02 Python
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
介绍Python中内置的itertools模块
2015/04/29 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
Restful_framework视图组件代码实例解析
2020/11/17 Python
利用Canvas模仿百度贴吧客户端loading小球的方法示例
2017/08/13 HTML / CSS
移交协议书
2014/08/19 职场文书
聘任通知书
2015/09/21 职场文书
公开致歉信
2019/06/24 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript