小程序获取周围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 mouseover、mouseout停止事件冒泡的解决方案
Apr 07 Javascript
jquery监听div内容的变化具体实现思路
Nov 04 Javascript
Javascript浅谈之引用类型
Dec 18 Javascript
javascript中的循环语句for语句深入理解
Apr 04 Javascript
Jquery对象和Dom对象的区别分析
Nov 20 Javascript
javascript最基本的函数汇总
Jun 25 Javascript
延时加载JavaScript代码提高速度
Dec 27 Javascript
jquery 获取select数组与name数组长度的实现代码
Jun 20 Javascript
jQuery的ready方法实现原理分析
Oct 26 Javascript
微信小程序页面开发注意事项整理
May 18 Javascript
Ionic2开发环境搭建教程
Aug 20 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
Dec 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
基于文本的留言簿
2006/10/09 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
php常用字符串处理函数实例分析
2014/11/22 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
2018/03/06 Javascript
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
python中执行shell命令的几个方法小结
2014/09/18 Python
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
Django 对象关系映射(ORM)源码详解
2019/08/06 Python
浅析python redis的连接及相关操作
2019/11/07 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
如何理解委托
2012/01/06 面试题
玲玲的画教学反思
2014/02/04 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
大学军训决心书
2015/02/05 职场文书
年度考核个人总结
2015/03/06 职场文书
《窃读记》教学反思
2016/02/18 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS
MySQL添加索引特点及优化问题
2022/07/23 MySQL
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL