zoukankan      html  css  js  c++  java
  • 微信小程序如何检测接收iBeacon信号

    前话

    微信小程序开发带着许多坑,最近就遇到了个需求,检测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

  • 相关阅读:
    刷题19. Remove Nth Node From End of List
    刷题17. Letter Combinations of a Phone Number
    mysql图形化工具基本操作
    报错:ER_NO_DEFAULT_FOR_FIELD: Field 'status' doesn't have a default value
    express综合用法
    npm自定义上传
    node_第三方包下载文件package.jon详解
    正则表达式修改文字元素对齐方式
    初始化文章分类的方法 下拉的layui框
    标准git请求
  • 原文地址:https://www.cnblogs.com/pwc1996/p/8059448.html
Copyright © 2011-2022 走看看