小程序获取周围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 相关文章推荐
jQuery jcrop插件截图使用方法
Nov 20 Javascript
JS弹出窗口的运用与技巧大全
Nov 01 Javascript
JavaScript仿微博输入框效果(案例分析)
Dec 06 Javascript
JS基于面向对象实现的拖拽功能示例
Dec 20 Javascript
livereload工具实现前端可视化开发【推荐】
Dec 23 Javascript
微信小程序 switch组件详解及简单实例
Jan 10 Javascript
基于React实现表单数据的添加和删除详解
Mar 14 Javascript
JSONP基础知识详解
Mar 19 Javascript
浅谈vue首屏加载优化
Jun 28 Javascript
js JSON.stringify()基础详解
Jun 19 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
May 03 Javascript
jQuery实现的分页插件完整示例
May 26 jQuery
详解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
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
JAVASCRIPT  THIS详解 面向对象
2009/03/25 Javascript
js获取当前日期时间及其它日期操作汇总
2016/03/08 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
python实现simhash算法实例
2014/04/25 Python
python实现备份目录的方法
2015/08/03 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
2018/01/08 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
python通过实例讲解反射机制
2019/10/17 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
VICHY薇姿俄罗斯官方网上商店:法国护肤品牌,火山温泉水
2019/11/22 全球购物
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
Final类有什么特点
2012/04/25 面试题
毕业生个人求职信范文分享
2014/01/05 职场文书
仓库管理制度
2014/01/21 职场文书
初级会计求职信范文
2014/02/15 职场文书
岗位说明书怎么写
2014/07/30 职场文书
春季运动会加油词
2015/07/18 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL
springcloud整合seata
2022/05/20 Java/Android