小程序获取周围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 相关文章推荐
js时间日期和毫秒的相互转换
Feb 22 Javascript
js之onload事件的一点使用心得
Aug 14 Javascript
js charAt的使用示例
Feb 18 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
Mar 18 Javascript
使用CamanJS在Web页面上处理图像的技巧
Aug 18 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
Aug 01 Javascript
原生JS发送异步数据请求
Jun 08 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
Sep 26 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
Apr 20 Javascript
浅谈layui分页控件field参数接收对象的问题
Sep 20 Javascript
jquery 遍历hash操作示例【基于ajax交互】
Oct 12 jQuery
js实现头像上传并且可预览提交
Dec 25 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不用正则验证真假身份证
2013/11/06 PHP
PHP中使用BigMap实例
2015/03/30 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
PHP命名空间与自动加载类详解
2018/09/04 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
JS trim去空格的最佳实践
2011/10/30 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
js模拟微博发布消息
2017/02/23 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
Python按行读取文件的简单实现方法
2016/06/22 Python
python如何修改装饰器中参数
2018/03/20 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
pytz格式化北京时间多出6分钟问题的解决方法
2019/06/21 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
通过代码实例了解Python sys模块
2020/09/14 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
在职研究生自我鉴定
2013/10/16 职场文书
上课睡觉检讨书
2014/01/28 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
2016先进工作者事迹材料
2016/02/25 职场文书
MySQL索引是啥?不懂就问
2021/07/21 MySQL
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js