问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 微信小程序 Bug 蓝牙功能 客户端 6.7.2 2.2.3
微信小程序流程描述:
进入微信小程序,初始化蓝牙,开启一系列监听
然后用户扫描二维码--->获取设备的Mac--->(此Mac会通过设备的广播数据中存在advertisData)--->开始搜索--->匹配--->连接--->后续蓝牙操作;
情景描述:
android: 有大概率搜索不到设备,然后我仔细的看了文档,发现有下面这句话
若微信小程序在之前已有搜索过某个蓝牙设备,并成功建立链接,可直接传入之前搜索获取的deviceId直接尝试连接该设备,无需进行搜索操作。
然后我就修改代码,如果再次准备连接的设备与上次连接的相同,就直接连接,这样的确解决了问题,
但是,如果我再次准备连接的设备与上次连接的不同,那么我就需要再去搜索,依然有可能搜索不到。
然后,我调用closeBluetoothAdapter方法,然后再次调用openBluetoothAdapter,然后再去搜索,可以搜索到;
ios: 如果再次准备连接的设备与上次连接的不同
扫码完成后,调用closeBluetoothAdapter方法,然后再次调用openBluetoothAdapter
这个时候有概率得不到回调(complete),可能是closeBluetoothAdapter的回调,也可能是openBluetoothAdapter的回调,
问题描述:
android 为何需要调用closeBluetoothAdapter方法,然后再次调用openBluetoothAdapter,才能搜索到设备
ios 为何会得不到回调 (通过日志发现,ios扫码的结果,在onshow前面触发,然后我已经开始 closeAdapter---> openAdapter ,这个时候才能得到onshow的回调,会不会是这里影响的, android没有前面说的这个问题)
关于closeAdapter---> openAdapter 这个方法,我尝试过 Callback ,promise 都有可能 没有结果
appid: wxd202da3e74545336
微信号:TXlEdW8wMA== (base64)
二维码内容:
https://wx.qq.com/wxapp/sign/?devn=设备名称&devId=设备广播的mac地址
比如:https://wx.qq.com/wxapp/sign/?devn=TKB_KT_168&devId=a53d7e000878
代码片段
wechatide://minicode/OJLUHcm57X2f
本文网址:http://www.91bianli.com/weixinxiaochengxu/48019.html