小程序获取周围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 Array数组对象的扩展函数代码
May 22 Javascript
收集的10个免费的jQuery相册
Feb 26 Javascript
Node.js 异步编程之 Callback介绍(一)
Mar 30 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
Jul 28 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
Aug 15 Javascript
点评js异步加载的4种方式
Dec 22 Javascript
JavaScript笔记之数据属性和存储器属性
Mar 31 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
Jun 17 Javascript
jQuery Plupload上传插件的使用
Apr 19 jQuery
基于vue.js实现的分页
Mar 13 Javascript
vue组件实践之可搜索下拉框功能
Nov 25 Javascript
vue中的循环对象属性和属性值用法
Sep 04 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不用正则采集速度探究总结
2008/03/24 PHP
php中cookie的作用域
2008/03/27 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
javascript中数组和字符串的方法对比
2016/07/20 Javascript
BootStrap树状图显示功能
2016/11/24 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
2019/04/02 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
python实现字符串和日期相互转换的方法
2015/05/13 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
python如何实现反向迭代
2018/03/20 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
python字符串的拼接方法总结
2019/11/18 Python
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
史蒂夫·马登加拿大官网:Steve Madden加拿大
2017/11/18 全球购物
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
行政助理岗位职责范文
2013/12/03 职场文书
电工技术比武方案
2014/05/11 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python