本文主要是介绍微信小程序获取蓝牙信标需要注意的坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
微信小程序相关蓝牙接口我通过红米手机实机测试,
小程序获取信标的相关接口
建议使用wx.startBeaconDiscovery(Object object)
的相关接口
需要使用的官方接口为:
1、小程序官方接口文档
2、获取设备的蓝牙和gps是否打开的接口
const systemSetting = wx.getSystemSetting();//官方接口为wx
//返回结果为
{
bluetoothEnabled: true
deviceOrientation: "portrait"
locationEnabled: true
wifiEnabled: true
}
小程序无法获取蓝牙数据的问题
小程序获取无法蓝牙数据问题,主要包含两部分:
手机的相关设备没开
- 就是蓝牙设备没开,提示打开蓝牙设备
- 部分手机当没有打开gps设备时,虽然可是初始化蓝牙打开功能,但是会搜不到,这个时候需要打开gps设备后,重新初始化,然后才能搜到
权限没有获取到
一共有两个权限,一个是蓝牙读取权限,一个是gps权限
分别包括手机设备是否对微信进行了开放,微信是否对小程序进行了开放。需要处理如下四种情况:
手机 | 小程序 | |
---|---|---|
蓝牙 | 微信获取手机的 | 小程序获取用户的 |
gps | 微信获取手机的 | 小程序获取用户的 |
通过蓝牙-通用 的接口获取beacon数据的问题
通过通用接口,也就是通过wx.startBluetoothDevicesDiscovery(Object object)
这个接口获取beacon数据的话,需要解决上面所有的问题,并且还需要解决用户可能拒绝授予权限的问题。
建议直接采用wx.startBeaconDiscovery(Object object)
的相关接口,虽然这样在遇到上述权限被拒绝时没有处理的逻辑,但是这种方法不会触发用户授权的界面,默认只要打开相应设备即可获取数据,具体实现方法需要你去确定了。
总结
获取蓝牙设备部分手机需要两种权限,并且需要处理手机未给微信授权,微信未给小程序授权两种情况,通过蓝牙-通用接口获取的话,因为会提示用户授权,因此,必须要处理用户未授权的逻辑,而采用wx.startBeaconDiscovery(Object object)
是一种取巧的方式。
这篇关于微信小程序获取蓝牙信标需要注意的坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!