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

2022-08-18  本文已影响0人  hao_developer

一、错误详情:

{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

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

三、总结

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

上一篇下一篇

猜你喜欢

热点阅读