小程序获取周围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
JavaScript 应用技巧集合[推荐]
Aug 30 Javascript
EXT中xtype的含义分析
Jan 07 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
May 13 Javascript
js 三级关联菜单效果实例
Aug 13 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
Aug 30 Javascript
JS是按值传递还是按引用传递
Jan 30 Javascript
jquery图片倾斜层叠切换特效代码分享
Aug 27 Javascript
在JavaScript中使用JSON数据
Feb 15 Javascript
JavaScript实现搜索框的自动完成功能(一)
Feb 25 Javascript
Vue中通过Vue.extend动态创建实例的方法
Aug 13 Javascript
JavaScript实现移动端带transition动画的轮播效果
Mar 24 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 输出缓存详解
2009/06/20 PHP
php 数组二分法查找函数代码
2010/02/16 PHP
destoon官方标签大全
2014/06/20 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
判断浏览器的javascript版本的代码
2010/09/03 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
python绘制双柱形图代码实例
2017/12/14 Python
Python iter()函数用法实例分析
2018/03/17 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
python3 下载网络图片代码实例
2019/08/27 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
2012/10/05 面试题
副总经理党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/06 职场文书
给朋友的道歉短信
2015/05/12 职场文书
出生证明范本
2015/06/15 职场文书
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫