小程序获取周围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 相关文章推荐
JQuery 解析多维的Json数据格式
Nov 02 Javascript
在Firefox下js select标签点击无法弹出
Mar 06 Javascript
javascript编写实用的省市选择器
Feb 12 Javascript
javascript十六进制及二进制转化的方法
May 06 Javascript
JavaScript中Object.prototype.toString方法的原理
Feb 24 Javascript
浅谈Javascript中的12种DOM节点类型
Aug 19 Javascript
详解JS几种变量交换方式以及性能分析对比
Nov 25 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
Apr 19 Javascript
js实现本地时间同步功能
Aug 26 Javascript
重学JS之显示强制类型转换详解
Jun 30 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
Sep 21 Javascript
js实现三角形粒子运动
Sep 22 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性能优化分析工具XDebug 大型网站调试工具
2011/05/22 PHP
php实现MySQL数据库备份与还原类实例
2014/12/09 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
PDO::query讲解
2019/01/29 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
ie支持function.bind()方法实现代码
2012/12/27 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
python正则表达式re模块详细介绍
2014/05/29 Python
python实现挑选出来100以内的质数
2015/03/24 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
Python使用python-docx读写word文档
2019/08/26 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
python中取绝对值简单方法总结
2020/07/24 Python
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
零件设计自荐信范文
2013/11/27 职场文书
学前班教师的自我鉴定
2013/12/05 职场文书
综合办公室主任职责
2013/12/16 职场文书
护理个人求职信范文
2014/01/08 职场文书
校园十佳歌手策划书
2014/01/22 职场文书
市场营销管理制度
2014/01/29 职场文书
说明书格式及范文
2014/05/07 职场文书
药店营业员岗位职责
2015/04/14 职场文书
迎国庆主题班会
2015/08/17 职场文书
Python实现机器学习算法的分类
2021/06/03 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python