小程序获取周围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 相关文章推荐
在Ajax中使用Flash实现跨域数据读取的实现方法
Dec 02 Javascript
Ext对基本类型的扩展 ext,extjs,format
Dec 25 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
Nov 10 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
Nov 17 Javascript
浏览器中url存储的JavaScript实现
Jul 07 Javascript
jquery的幻灯片图片切换效果代码分享
Sep 07 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
Oct 12 Javascript
js利用appendChild对标签进行排序的实现方法
Oct 16 Javascript
js实现百度登录框鼠标拖拽效果
Mar 07 Javascript
jQuery实现扑克正反面翻牌效果
Mar 10 Javascript
element-ui 本地化使用教程详解
Oct 28 Javascript
多个Vue项目部署到服务器的步骤记录
Oct 22 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返回字符串中所有单词的方法
2015/03/09 PHP
php无序树实现方法
2015/07/28 PHP
php数据序列化测试实例详解
2017/08/12 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
js中直接声明一个对象的方法
2014/08/10 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
2017/05/17 Javascript
详解vue 数组和对象渲染问题
2018/09/21 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
详解Python2.x中对Unicode编码的使用
2015/04/03 Python
django 实现电子支付功能的示例代码
2018/07/25 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
初中美术教学反思
2014/01/29 职场文书
优秀教师事迹简介
2014/02/02 职场文书
音乐教学随笔感言
2014/02/19 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
超市仓管员岗位职责范本
2014/09/18 职场文书
员工试用期自我评价
2014/09/18 职场文书
三严三实对照检查材料
2014/09/22 职场文书
2014年药店店长工作总结
2014/11/17 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技