小程序获取周围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 相关文章推荐
一个cssQuery对象 javascript脚本实现代码
Jul 21 Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
Oct 26 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
Jun 12 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
Sep 25 Javascript
父节点获取子节点的字符串示例代码
Feb 26 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
May 14 Javascript
jQuery实现网站添加高亮突出显示效果的方法
Jun 26 Javascript
学习JavaScript设计模式(多态)
Nov 25 Javascript
日常收集整理的JavaScript常用函数方法
Dec 10 Javascript
详解javascript new的运行机制
Jan 26 Javascript
jQuery获取radio选中项的值实例
Jun 18 Javascript
tracking.js页面人脸识别插件使用方法
Apr 16 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/12/12 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
php7安装yar扩展的方法详解
2017/08/03 PHP
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
动态添加删除表格行的js实现代码
2014/02/28 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
javascript 事件处理示例分享
2014/12/31 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
python 图片验证码代码
2008/12/07 Python
python字符串,数值计算
2016/10/05 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
Python json转字典字符方法实例解析
2020/04/13 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
keras多显卡训练方式
2020/06/10 Python
tensorflow之读取jpg图像长和宽实例
2020/06/18 Python
深入了解Python 变量作用域
2020/07/24 Python
巴西在线鞋店:Shoestock
2017/10/28 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
出纳的岗位职责
2013/11/09 职场文书
施工员岗位职责范本
2015/04/11 职场文书
丧事主持词
2015/07/02 职场文书
Python中的tkinter库简单案例详解
2022/01/22 Python