z***@sciyon.com
z***@sciyon.com
  • 发布:2019-08-07 13:50
  • 更新:2020-03-01 23:47
  • 阅读:1002

【报Bug】iOS下蓝牙特征值监听bug

分类:uni-app

详细问题描述

(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

2019-08-07 13:50 负责人:无 分享
已邀请:
dyh1

dyh1

我也遇到这个问题了,一脸懵逼,要怎么解决呢

该问题目前已经被锁定, 无法添加新回复