美文网首页
微信小程序使用蓝牙wx.startBluetoothDevice

微信小程序使用蓝牙wx.startBluetoothDevice

作者: hao_developer | 来源:发表于2022-08-18 09:53 被阅读0次

    一、错误详情:

    {errno: 1509008, errCode: -1, errMsg: "startBluetoothDevicesDiscovery:fail:location permission is denied", isDiscovering: false}
    

    从官方文档查询:https://developers.weixin.qq.com/miniprogram/dev/api/device/bluetooth/wx.startBluetoothDevicesDiscovery.html

    并没有这个这个错误代码。但是文档下方又有一句话提示:

    考虑到蓝牙功能可以间接进行定位,安卓 6.0 及以上版本,无定位权限或定位开关未打开时,无法进行设备搜索。这种情况下,安卓 8.0.16 前,接口调用成功但无法扫描设备;8.0.16 及以上版本,会返回错误。
    

    纵使手机打开蓝牙,定位,并授权微信有定位权限。但是仍然部分安卓手机还报错。

    所以推断,必须微信小程序主动弹出定位授权让用户点击同意。

    二、解决办法

    2.1 给微信小程序 app.json 增加 permission 节点配置

    "permission": {
        "scope.userLocation": {
          "desc": "授权定位有助于提高蓝牙水表的连接成功率"
        }
      },
    

    2.2 调用一次手机定位

    简单粗暴的办法就是首页调用一次定位,不要重复调用,以免影响性能。如:

        wx.getLocation({
          type: 'gcj02',
          success (res) {
            console.log(res)
          }
         })
    

    当打开小程序,就会提示:


    image.png

    点击同意后即可。如果不同意,用户也可以通过小程序设置来开启定位权限。

    2.3 提交审核的时候,需要更新用户隐私协议,完善一下

    image.png

    更新协议:

    image.png

    最后提交体验版审核,待通过后,发布新版就可以解决问题了

    三、总结

    微信小程序不定期会修改一些接口权限,要留意官方通知,还有就是要具体调试错误代码和错误日志。

    相关文章

      网友评论

          本文标题:微信小程序使用蓝牙wx.startBluetoothDevice

          本文链接:https://www.haomeiwen.com/subject/oocegrtx.html