小程序获取周围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写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
Feb 09 Javascript
javascript 动态table添加colspan\rowspan 参数的方法
Jul 25 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
Sep 03 Javascript
Node.js 学习笔记之简介、安装及配置
Mar 03 Javascript
jQuery学习笔记之Ajax用法实例详解
Dec 01 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
Mar 06 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
Mar 28 jQuery
在angular 6中使用 less 的实例代码
May 13 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
Jun 26 Javascript
浅谈KOA2 Restful方式路由初探
Mar 14 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
Sep 10 Javascript
浅谈JavaScript 声明提升
Sep 14 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/09/03 PHP
php 友好URL的实现(吐血推荐)
2008/10/04 PHP
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
2009/05/28 PHP
PHP企业级应用之常见缓存技术篇
2011/01/27 PHP
Jquery 基础学习笔记
2009/05/29 Javascript
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
15款最好的Bootstrap在线编辑器
2016/08/03 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
mac下pycharm设置python版本的图文教程
2018/06/13 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
2019/08/12 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
浅谈Python 参数与变量
2020/06/20 Python
浅谈TensorFlow之稀疏张量表示
2020/06/30 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
业务总经理岗位职责
2014/02/03 职场文书
生物技术专业求职信
2014/06/10 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
体检通知范文
2015/04/21 职场文书
合理化建议书范文
2015/09/14 职场文书
《猴王出世》教学反思
2016/02/23 职场文书
如何写好闭幕词
2019/04/02 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书