收藏
回答

iOS 11 ibeacon扫描问题

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug ibeacon/wx.startBeaconDiscovery 客户端 iOS 6.6.7 2.0.9

iOS11 蓝牙从通知中心中看有以下3种状态


  1. 蓝牙硬件关闭,无法进行蓝牙扫描,及ibeacon扫描。

  2. 蓝牙硬件开启,无法进行蓝牙扫描,但是可以进行ibeacon扫描。

  3. 蓝牙硬件开启,可以进行蓝牙扫描,及ibeacon扫描。


以下两个操作可以发现该bug

  • 以蓝牙3状态进去小程序扫描,startBeaconDiscovery函数 ibeacon一直能扫描到并返回数据。此时切换到蓝牙2状态,ibeacon依旧能扫描到数据

  • 以蓝牙2状态进去小程序扫描startBeaconDiscovery返回错误码11000,iOS原生代码实际上是能够扫描到ibeacon,只是此时程序上获取到的蓝牙状态是关闭着的,所以可能startBeaconDiscovery函数执行时判断蓝牙状态是关闭着就直接返回错误信息了。


请维持iOS代码原生效果,让小程序从蓝牙2状态开启,也能正常扫描到ibeacon。


最后一次编辑于  2018-06-08  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

14 个回答

  • 黄思程
    黄思程
    置顶回答2018-06-11

    你好,感谢反馈,这个问题我们下个版本修复一下

    -------


    08-23更新:

    微信版本6.7.2,startBeaconDiscovery接口新增ignoreBluetoothAvailable参数,表示是否校验蓝牙开关,楼主可以尝试一下

    2018-06-11
    赞同
    回复 7
    • 张腾营
      张腾营
      2018-06-11

      好的,谢谢支持。

      2018-06-11
      赞同
      回复
    • 春风十里
      春风十里
      2018-06-12回复张腾营

      你好 怎么知道 他的  uuids呢

      2018-06-12
      赞同
      回复
    • 张腾营
      张腾营
      2018-06-12回复春风十里

      ibeacon是自己的,所以知道uuid呀。

      2018-06-12
      赞同
      回复
    • 春风十里
      春风十里
      2018-06-12回复张腾营

      哦哦买的时候 就知道 是吧  不用下载第三方 APP软件 获取?

      2018-06-12
      赞同
      回复
    • 张腾营
      张腾营
      2018-06-12回复春风十里

      额。。用第三方获取也可以的吧。。我没关注怎么获取uuid的额。

      2018-06-12
      赞同
      回复
    查看更多(2)
  • 王翊夫if
    王翊夫if
    2018-06-14

    楼主你好,有个问题需要和你讨论一下,你反馈的问题是 iOS11 引入的新特性,用户在控制中心关闭蓝牙不会真正关闭手机的蓝牙功能,系统的 airDrop、定位等功能仍然有效,因此 iBeacon 功能仍能使用。

    但是从程序上来看,不管是 情况1 或者 情况2, 微信端获取到的蓝牙状态均为 CBManagerStatePoweredOff,无法真正区分这两种情况。

    那从开发者角度来看,是否接受小程序beacon模块不关心蓝牙状态直接开始监听周边 beacon 呢,不在蓝牙状态为CBManagerStatePoweredOff返回失败?

    或者你这边有没有更好的解决方案呢?

    2018-06-14
    赞同
    回复 5
    • 张腾营
      张腾营
      2018-06-20

      很抱歉现在才看到消息。目前的确无法准确的区分蓝牙状态,所以我个人认为小程序beacon模块可以不需要关心蓝牙状态直接开始监听周边 beacon,这样应该更贴近原生App的使用吧。

      2018-06-20
      赞同
      回复
    • 张腾营
      张腾营
      2018-08-09

      请问该功能是否已经在开发了?

      因为苹果系统控制中心的蓝牙开关有个显示的bug,可通过以下操作必现

      1、在控制台中关闭蓝牙

      2、在设置中关闭蓝牙

      3、在设置中打开蓝牙

      此时蓝牙实际上处于非完全开启状态,但是显示的是完全开启状态。

      再集合当前小程序的bug:一开始蓝牙处在非完全开启状态下进入小程序时,ibeacon无法扫描,实际上iOS是可以。


      2018-08-09
      赞同
      回复
    • 王翊夫if
      王翊夫if
      2018-08-13回复张腾营

      在版本6.7.2中修复,具体调整细节会在版本后和你反馈的。目前被苹果审核拒绝两次了……

      2018-08-13
      赞同
      回复
    • 张腾营
      张腾营
      2018-08-21回复王翊夫if

      好的,谢谢!

      2018-08-21
      赞同
      回复
    • 张腾营
      张腾营
      2018-09-03回复王翊夫if

      现在的ios的ibeacon扫描没有变化啊?蓝牙浅关闭状态还是无法扫描。你确定微信6.7.2版本已经修改了这个问题了吗

      2018-09-03
      赞同
      回复