业务中需要用到监听uni.onBLECharacteristicValueChange()接口监听特征值变化,然后用户也可以随时取消监听,Dcloud能否提供一下取消监听蓝牙特征值变化的API啊。

QCoder
- 发布:2020-04-13 13:02
- 更新:2025-06-14 11:06
- 阅读:3361
18 个回复
Azikou
人力都去搞uts去了,不然怎么赶日超美
QCoder (作者) - 专注前端领域
官方就没一个响应吗?这方面微信小程序API就比较全面,你Uniapp也就是拿着h5+plus的API改造改造,那也得加一些自己的东西进去啊,完全是基于h5+plus的API二次封装而已,那我还用你干嘛?
1***@163.com - 90后IT男
这个问题困扰也是有大半年了,问了好多问题也没人回复。微信小程序中是有移除对应监听事件的,感觉马上要弃坑了。还不如专做一个小程序了。你现在的问题解决了吗?
1***@163.com
关闭蓝牙模块也无法关闭监听,蓝牙断开重连后监听到的数据也有异常。
yushen999
我们也遇到这个问题了啊,郁闷啊。
第一次手机连接设备的时候,一切正常。
但是如果断开连接,重新连接设备的话,那么之前的监听还在,就会同时存在多个监听,然后会造成各种问题,怎么都关不掉之前的监听啊。
yushen999
解决掉了,
就是在监听的位置做一个判断,如果接收到的数据跟上一条或前几条数据一样,那就直接return,不处理,就没事了
2020-07-23 11:27
王子赤
回复 yushen999: 用你的这个方法是解决多次监听数据相同,但本质时没有解决多次监听事件
2020-08-06 11:49
b***@gmail.com
2年了,都还没修复掉,无语
1***@qq.com
加一个取消监听而已,两年多了还没解决吗?
用论坛找到的$emit、$on也不行,只有第一次进界面的时候修改数据能刷新视图,后面怎么玩都不行了,而且$off无效,到另一个界面再$on开启,执行的还是前一个界面的,不管加不加参数,$off多少次,都一样,这些bug这么多年都没人修复的吗?uniapp现在到底有没有人维护?????
多个界面需要监听蓝牙数据,数据量也大,还要刷新界面视图,请问有解决方案吗?
w***@sina.com
说真的,这都三年了,这个东西都还提供不了吗,一个官方论坛也没什么官方技术人员来解答问题,真的很垃圾
Descartes
都特喵三年了还没解决,微信小程序不就有对应的API吗?uni官方抄都不会抄?
1***@qq.com - 无
都特喵四年了,还没解决吗
N***@outlook.com
uniapp就是个坑,这问题无解的,我现在的解决方案就是,在APP.vue中初始化一次,初始化后特征值变化就把数据都存在vuex/pinia中,然后页面监听vuex/pinia的数据变化,实时刷新
1***@163.com
都特喵四年了,还没解决吗??????????
3***@qq.com
都TM第五年了。。。
3***@qq.com
五年,你知道这五年我怎么过的吗
1***@163.com
五年! 五年! 你知道我怎么过的嘛 救命啊
2025-02-21 16:05
2***@qq.com - 哈哈哈
五年了 官方呢
k***@outlook.com
let notifyCb = (res) => {
let resHex = (ab2hex(res.value) as string).toUpperCase();
console.log("接收到16进制字符串" + "-----------", resHex);
}
uni.onBLECharacteristicValueChange(notifyCb);
uni.closeBLEConnection({
success: function() {
notifyCb = function() {}
}
})
解决问题了,之前在onBLECharacteristicValueChange里直接箭头函数进行处理,现在把回调函数抽出来,断开连接的时候设为空函数,这样就不会连接其他设备的时候还有之前的监听了
2***@qq.com
你这样解决了是吗
2025-06-04 19:55
k***@outlook.com
回复 2***@qq.com: 解决了
2025-06-20 14:41
2***@qq.com
6年了!!!!还解不解决了
2***@qq.com
我哭死了 2025年6月4号出现这个问题
2025-06-04 19:32
2***@qq.com
回复 2***@qq.com: 哈哈蛤,解决没
2025-06-13 10:03
1***@163.com
回复 2***@qq.com: 无解
2025-06-27 09:33
1***@163.com
回复 1***@163.com: 好像楼上说可以。试试他的方法
2025-06-27 09:42
r***@163.com
官方都不理了吗