前话

微信小程序开发带着许多坑,最近就遇到了个需求,检测iBeacon来进行地点签到。

(╯▔皿▔)╯

微信小程序对于iBeacon的文档也写的十分精简,只简单介绍了每个接口的作用,这就导致我以为简单调用单个接口即可实现功能,因此我就写出了这样的错误代码逻辑 :

(╯‵□′)╯︵┻━┻

wx.startBeaconDiscovery({
uuids: ['xxxxx'],
success(res){
console.log('签到成功')
},
fail(err){
console.log('签到失败')
}
})

结果是,点击签到按钮调用该接口的时候,几乎都是签到失败

(╯‵□′)╯炸弹!•••*~●。

当然,最后还是谷歌解决了,因为前人也踩了这个坑,因此我还是搬运过来,让后人少受熬夜之苦 (;´༎ຶД༎ຶ`)

正题

废话不多说,如果你要检测接收iBeacon信号,建议按照这样的接口调用步骤:

	   wx.stopBeaconDiscovery # 停止扫描

setTimeout # 超时设置

开始 → wx.startBeaconDiscovery # 开始扫描

︱―fail(err)→结束

success(res)

wx.onBeaconUpdate # 监听iBeacon信号

︱―fail(err)→结束

success(res)

TODO

最后,我的代码如下:

var devices = [];

// 开始扫描
wx.startBeaconDiscovery({
uuids: uuidArray,
success: function () {
console.log("开始扫描设备...");
// 监听iBeacon信号
wx.onBeaconUpdate(function (res) {
// 请注意,官方文档此处又有BUG,是res.beacons,不是beacons。
if (res && res.beacons && res.beacons.length > 0) {
devices = res.beacons;
// 此处最好检测rssi是否等于0,等于0的话信号强度等信息不准确。我是5秒内重复扫描排重。
}
});
}
}); // 超时停止扫描
setTimeout(function () {
wx.stopBeaconDiscovery({
success: function () {
console.log("停止设备扫描!");
console.log(devices);
}
});
}, 5 * 1000);

OK,问题似乎不经意间被完美解决了( •̀ ω •́ )y

微信小程序如何检测接收iBeacon信号的更多相关文章

  1. [入门到吐槽系列] 微信小程序 敏感违规图片检测 mediaCheckAsync,客服接口 消息推送 的各种坑分享!

    前言: 最近需要做个用户上传图片,服务端校验图片问题的需求.需要使用小程序消息推送,异步接受腾讯的图片验证回调.实在太多坑了. 相信10分钟看完本文的朋友,可以非常顺利避坑. 前期准备: 首先需要一个 ...

  2. 微信小程序客服消息开发实战:实时在手机上接收小程序客服消息通知,以及在手机上回复

    在微信小程序开发中,可以非常方便的集成客服功能,只需要一行代码便可以将用户引导至客服会话界面.这行代码就是: <button open-type="contact" bind ...

  3. 微信小程序开发之多图片上传+服务端接收

    前言: 业务需求,这次需要做一个小程序同时选中三张图片一起上传到服务端,后端使用的.NET WEBAPI接收数据保存. 使用技术: 在这章中将会使用到微信小程序wx.uploadFile(Object ...

  4. 检测微信小程序是否被反编译获取源码

    众所周知,微信小程序的代码安全性很弱,很容易被别人反编译获取源码.我自己的小程序也被别人反编译拿到源码还上线了,非常无语. 既然客户端不好防范,服务端还是可以做点手脚的. 小程序的Referer是不可 ...

  5. 微信小程序,工具未检测合法域名,400 (Bad Request)错误

    1.工具未检测合法域名 这个我就不多说了,如果你新建的时候没有填写AppID的话这个我就不太清楚了 如果新建项目的时候填写了AppID的话,出现这种错误,那你应该去小程序后台 设置->开发者设置 ...

  6. [转]微信小程序开发(二)图片上传+服务端接收

    本文转自:http://blog.csdn.net/sk719887916/article/details/54312573 文/YXJ 地址:http://blog.csdn.net/sk71988 ...

  7. 微信小程序:使用wx.request()请求后台接收不到参数

    问题描述: 微信小程序:wx.request()请求后台接收不到参数,我通过wx.request()使用POST方式调用请求,参数传递不到后台 解决方案: Content-Type': 'applic ...

  8. PHP 实现微信小程序敏感图片、内容检测接口

    主要是为了调用微信小程序msgSecCheck.imgSecCheck接口. 先附上小程序接口说明文档地址:https://developers.weixin.qq.com/miniprogram/d ...

  9. 官方问答--微信小程序常见FAQ (17.8.21-17.8.27)

    给提问的开发者的建议:提问之前先查询 文档.通过社区右上角搜索搜索已经存在的问题. 写一个简明扼要的标题,并且正文描述清楚你的问题. 提交 BUG:需要带上基础库版本号,设备信息(iOS, Andro ...

随机推荐

  1. NSOperation的使用细节 [3]

    NSOperation的使用细节 [3] 这一节我们来写自定义concurrent的operation,自定义concurrent的operation稍微有点复杂,需要按照某些既定的步骤编写才可以完成 ...

  2. 【数据结构】 顺序表查找(折半查找&&差值查找)

    #include <stdio.h> #include <stdlib.h> #include <time.h> #define MAXSIZE 10 首先构造一个 ...

  3. Skype for Business Server-呼叫质量仪表板(一)安装与配置

    第一篇:安装与配置 很多公司在运行过程中都遇到了难以追踪客服人员绩效的情况,公司没有有效的方法追踪员工在通过电话等远程方式解决客户问题.销售产品.客户关怀的情况.Skype for Business提 ...

  4. 铁乐学Python_day12_作业

    1.写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组 例如:[('红心',2),('草花',2), -('黑桃','A')] def poker(): suit = ['红心', '梅花', ...

  5. HelloAndroid

    Hello Android 代码 button.setOnClickListener { val alertDialog = AlertDialog.Builder(this) alertDialog ...

  6. python面向对象-封装and多态

    python 接口类和抽象类 为什么讲封装之前要将这个东西? 我才不会说为什么 首先: python没有接口类这个概念!!!!!!!! 哈哈哈......神经病 python抽象类和接口类更接近于一种 ...

  7. .net 和 core 数据库连接字符串

    Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-xxxx.mdf;Initial Catalog= ...

  8. 第二次作业:找Bug

    引子 我真的想了一个小时,上哪里去找bug.我昨天还留意到一个bug,今天就不见了.灵光不断,我想起来了.我就要找大公司的产品的bug... 第一部分 调研, 评测 体验. <腾讯桌球>是 ...

  9. 一个最简单的WebSocket hello world demo

    服务器端代码不超过42行: const WSServer = require("./server.js"); var counter = 0; function createWeb ...

  10. 将Python打包成可执行文件exe的心路历程

    导言: 我们有时候需要将做好的Python程序打包成为一个exe , 方便我们使用,查找了资料发现 pyinstaller .py2exe,最后还是选择的pyinstaller,用的时候踩过了挺多的坑 ...