小程序获取周围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使用手册之 事件处理
Mar 24 Javascript
js 解决“options为空或不是对象”
Dec 22 Javascript
爆炸式的JS圆形浮动菜单特效代码
Mar 03 Javascript
jQuery cdn使用介绍
May 08 Javascript
原生javascript实现的分页插件pagenav
Aug 28 Javascript
详解如何构建Angular项目目录结构
Jul 13 Javascript
Vue.js实现图片的随意拖动方法
Mar 08 Javascript
js实现轮播图的完整代码
Oct 26 Javascript
element-ui 中的table的列隐藏问题解决
Aug 24 Javascript
vue 表单验证按钮事件交由父组件触发的方法
Dec 17 Javascript
vue源码nextTick使用及原理解析
Aug 13 Javascript
微信小程序用户授权最佳实践指南
May 08 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 empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
PHP企业级应用之常见缓存技术篇
2011/01/27 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
JavaScript 对象模型 执行模型
2010/10/15 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
BootStrap的两种模态框方式
2017/05/10 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
2018/03/16 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
python连接池实现示例程序
2013/11/26 Python
python计算auc指标实例
2017/07/13 Python
TensorFlow变量管理详解
2018/03/10 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
Python调用服务接口的实例
2019/01/03 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
环境科学毕业生自荐信
2013/11/21 职场文书
路政管理毕业自荐书范文
2014/02/10 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
超越自我演讲稿
2014/05/21 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
创业计划之特色精品店
2019/08/12 职场文书