小程序获取周围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 相关文章推荐
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
Mar 06 Javascript
基于jQuery的表格操作插件
Apr 22 Javascript
浅谈Javascript如何实现匀速运动
Dec 19 Javascript
将页面table内容与样式另存成excel文件的方法
Aug 05 Javascript
18个非常棒的jQuery代码片段
Nov 02 Javascript
JavaScript数组方法大全(推荐)
Jul 05 Javascript
Angular.js中用ng-repeat-start实现自定义显示
Oct 18 Javascript
探索Vue.js component内容实现
Nov 03 Javascript
JavaScript中的工厂函数(推荐)
Mar 08 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
Oct 26 Javascript
vue之a-table中实现清空选中的数据
Nov 07 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
Jun 01 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源码之explode使用说明
2011/08/05 PHP
php学习之function的用法
2012/07/14 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
全面解析PHP面向对象的三大特征
2017/06/10 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
javascript数组输出的两种方式
2015/01/13 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
js实现删除li标签一行内容
2019/04/16 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
Python求算数平方根和约数的方法汇总
2016/03/09 Python
python去除文件中重复的行实例
2018/06/29 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
tensorflow的计算图总结
2020/01/12 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
浅谈html5 响应式布局
2014/12/24 HTML / CSS
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
大学生党课思想汇报
2013/12/29 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
导游词之开封禹王台风景区
2019/12/02 职场文书
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python