小程序获取周围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 prototype属性使用说明
May 13 Javascript
仅IE不支持setTimeout/setInterval函数的第三个以上参数
May 25 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
Aug 07 Javascript
js实现瀑布流的一种简单方法实例分享
Nov 04 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
Jun 10 Javascript
node.js中的events.emitter.once方法使用说明
Dec 10 Javascript
JS实现FLASH幻灯片图片切换效果的方法
Mar 04 Javascript
JavaScript编写简单的计算器
Nov 25 Javascript
JavaScript保留关键字汇总
Dec 01 Javascript
Sublime Text 3常用插件及安装方法
Dec 16 Javascript
浅谈vue的iview列表table render函数设置DOM属性值的方法
Sep 30 Javascript
jquery分页插件pagination使用教程
Oct 23 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
PHP实现的购物车类实例
2015/06/17 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
2016/04/11 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
ExtJS Store的数据访问与更新问题
2010/04/28 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
2013/04/19 Javascript
下拉列表select 由左边框移动到右边示例
2013/12/04 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
基于vuejs+webpack的日期选择插件
2020/05/21 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
2016/11/07 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
vue-router源码之history类的浅析
2019/05/21 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
Vue + Elementui实现多标签页共存的方法
2019/06/12 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
vue 如何使用递归组件
2020/10/23 Javascript
python检查指定文件是否存在的方法
2015/07/06 Python
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
Python开发的实用计算器完整实例
2017/05/10 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
Python异常处理操作实例详解
2018/05/10 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
初中英语教学反思
2014/01/25 职场文书
青奥会口号
2014/06/12 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
《狼牙山五壮士》教学反思
2016/02/17 职场文书
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server