iOS11 蓝牙从通知中心中看有以下3种状态
蓝牙硬件关闭,无法进行蓝牙扫描,及ibeacon扫描。
蓝牙硬件开启,无法进行蓝牙扫描,但是可以进行ibeacon扫描。
蓝牙硬件开启,可以进行蓝牙扫描,及ibeacon扫描。
以下两个操作可以发现该bug
以蓝牙3状态进去小程序扫描,startBeaconDiscovery函数 ibeacon一直能扫描到并返回数据。此时切换到蓝牙2状态,ibeacon依旧能扫描到数据
以蓝牙2状态进去小程序扫描,startBeaconDiscovery返回错误码11000,iOS原生代码实际上是能够扫描到ibeacon,只是此时程序上获取到的蓝牙状态是关闭着的,所以可能startBeaconDiscovery函数执行时判断蓝牙状态是关闭着就直接返回错误信息了。
请维持iOS代码原生效果,让小程序从蓝牙2状态开启,也能正常扫描到ibeacon。
你好,感谢反馈,这个问题我们下个版本修复一下
-------
08-23更新:
微信版本6.7.2,startBeaconDiscovery接口新增ignoreBluetoothAvailable参数,表示是否校验蓝牙开关,楼主可以尝试一下
好的,谢谢支持。
你好 怎么知道 他的 uuids呢
ibeacon是自己的,所以知道uuid呀。
哦哦买的时候 就知道 是吧 不用下载第三方 APP软件 获取?
额。。用第三方获取也可以的吧。。我没关注怎么获取uuid的额。
楼主你好,有个问题需要和你讨论一下,你反馈的问题是 iOS11 引入的新特性,用户在控制中心关闭蓝牙不会真正关闭手机的蓝牙功能,系统的 airDrop、定位等功能仍然有效,因此 iBeacon 功能仍能使用。
但是从程序上来看,不管是 情况1 或者 情况2, 微信端获取到的蓝牙状态均为 CBManagerStatePoweredOff,无法真正区分这两种情况。
那从开发者角度来看,是否接受小程序beacon模块不关心蓝牙状态直接开始监听周边 beacon 呢,不在蓝牙状态为CBManagerStatePoweredOff返回失败?
或者你这边有没有更好的解决方案呢?
很抱歉现在才看到消息。目前的确无法准确的区分蓝牙状态,所以我个人认为小程序beacon模块可以不需要关心蓝牙状态直接开始监听周边 beacon,这样应该更贴近原生App的使用吧。
请问该功能是否已经在开发了?
因为苹果系统控制中心的蓝牙开关有个显示的bug,可通过以下操作必现
1、在控制台中关闭蓝牙
2、在设置中关闭蓝牙
3、在设置中打开蓝牙
此时蓝牙实际上处于非完全开启状态,但是显示的是完全开启状态。
再集合当前小程序的bug:一开始蓝牙处在非完全开启状态下进入小程序时,ibeacon无法扫描,实际上iOS是可以。
在版本6.7.2中修复,具体调整细节会在版本后和你反馈的。目前被苹果审核拒绝两次了……
好的,谢谢!
现在的ios的ibeacon扫描没有变化啊?蓝牙浅关闭状态还是无法扫描。你确定微信6.7.2版本已经修改了这个问题了吗