小程序获取周围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 16 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
May 15 Javascript
js 实现日期灵活格式化的小例子
Jul 14 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
Mar 01 Javascript
js转html实体的方法
Sep 27 Javascript
详解angular中的作用域及继承
May 31 Javascript
JS返回顶部实例代码
Aug 09 Javascript
vue中v-model动态生成的实例详解
Oct 27 Javascript
react-native android状态栏的实现
Jun 15 Javascript
node 标准输入流和输出流代码实例
Sep 19 Javascript
详解Angular cli配置过程记录
Nov 07 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
Terran历史背景
2020/03/14 星际争霸
PHP 引用文件技巧
2010/03/02 PHP
PHP实现多条件查询实例代码
2010/07/17 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
2017/09/12 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
jQuery length 和 size()区别总结
2018/04/26 jQuery
python获取目录下所有文件的方法
2015/06/01 Python
Python中装饰器高级用法详解
2017/12/25 Python
python logging重复记录日志问题的解决方法
2018/07/12 Python
python2 与 python3 实现共存的方法
2018/07/12 Python
python学生信息管理系统(初级版)
2018/10/17 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
win10安装python3.6的常见问题
2020/07/01 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
体育教师自荐信范文
2013/12/16 职场文书
酒店副总经理岗位职责范本
2014/02/04 职场文书
父亲的菜园教学反思
2014/02/13 职场文书
会议接待欢迎标语
2014/10/08 职场文书
2015年统战工作总结
2015/05/19 职场文书
初中思想品德教学反思
2016/02/24 职场文书