详细问题描述
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
设备蓝牙有两个特征值,一个支持notify用于监听,一个支持write用于写。先启动监听监听支持notify的特征值,此时监听特征值变化是可以的,也能得到变化值;但是调用写特征值后,此时监听的特征值UUID在iOS下就变成了写的那个特征值的UUID,导致监听特征值出错(Android下是没问题的,监听的特征值UUID仍是最初启动监听的那个)。
重现步骤
[步骤] 1、设备蓝牙有两个特征值,支持监听的特征值UUID(D44BC439-ABFD-45A2-B575-925416129601)、支持写的特征值UUID(D44BC439-ABFD-45A2-B575-925416129600);2、调用uni.notifyBLECharacteristicValueChange对支持监听的特征值启动监听,并实现uni.onBLECharacteristicValueChange,此时监听特征值变化是成功的;3、调用uni.writeBLECharacteristicValue对支持写的特征值进行写操作,此时uni.onBLECharacteristicValueChange中在iOS下接收到的数据中特征值UUID变成了写的那个特征值UUID,导致报错(因支持写的特征值是不支持监听的,Android下监听的特征值仍是启动监听的那个特征值,所以没问题)。
[结果] 报错信息:
{
"Error": "Error Domain=CBATTErrorDomain Code=6 \"The request is not supported.\" UserInfo={NSLocalizedDescription=The request is not supported.}",
"characteristicId": "D44BC439-ABFD-45A2-B575-925416129600",
"deviceId": "4F08FD13-383C-43B7-977E-B55671B28054",
"serviceId": "0000FEE9-0000-1000-8000-00805F9B34FB"
}
IDE运行环境说明
[IDE版本号] :2.1.3
[windows版本号] win10
uni-app运行环境说明
[运行端是h5或app或某个小程序?] app
[运行端版本号] 2.1.3
[编译模式是老模板模式还是新的自定义组件模式?] 自定义组件模式
App运行环境说明
[Android版本号] 9.0
[iOS版本号] 10.3
[手机型号]
[模拟器型号]
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]
联系方式
[QQ] 543771585
1 个回复
dyh1
我也遇到这个问题了,一脸懵逼,要怎么解决呢