小程序获取周围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面象对象设计
Apr 28 Javascript
js innerHTML 的一些问题的解决方法
Jun 22 Javascript
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
Nov 25 Javascript
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
JS实现点击链接取消跳转效果的方法
Jan 24 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
Jul 18 Javascript
JavaScript中Array的实用操作技巧分享
Sep 11 Javascript
jquery checkbox的相关操作总结
Oct 17 Javascript
利用jQuery实现简单的拖曳效果实例代码
Oct 20 jQuery
jQuery滑动效果实现方法分析
Sep 05 jQuery
vue element table中自定义一些input的验证操作
Jul 18 Javascript
JavaScript TAB栏切换效果的示例
Nov 05 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实现分页的一个示例
2006/10/09 PHP
如何隐藏你的.php文件
2007/01/04 PHP
封装一个PDO数据库操作类代码
2009/09/09 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
2020/05/01 PHP
ExtJS 工具栏 分页事件参数
2010/03/05 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
详解js中==与===的区别
2017/01/08 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
2018/07/04 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
网络技术支持面试题
2013/04/22 面试题
2013年高中生自我评价
2013/10/23 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
学生干部学习的自我评价
2014/02/18 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
社区服务活动感想
2015/08/11 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫