收藏
回答

wx.onBLECharacteristicValueChange()不回调?

IOS端 wx.onBLECharacteristicValueChange(function callback) 与A设备连接时有数据回调,与B设备时没有回调,但是B设备在IOS APP中时是可以接收到数据的


回答关注问题邀请回答
收藏

1 个回答

  • Lipeng
    Lipeng
    2022-06-13

    我们的几个蓝牙小程序一直在用这个接口,iOS没发现有这个问题。

    有一点值得注意onBLECharacteristicValueChange回调函数的注册,和notifyBLECharacteristicValueChange进行characteristicId数据监听。这两个方法一定要在writeBLECharacteristicValue之前调用,否则就有可能会错过数据回调。

    2022-06-13
    有用
    回复 5
    • 张伟勇
      张伟勇
      2022-06-13
      我这边的情况是,有两颗不同的蓝牙芯片,一颗和微信小程序进行数据发送与接收是没有问题,另一颗芯片与微信小程序进行数据的发送和接收在Android手机上也是没有问题的,但是在IOS 微信小程序上 只能发送数据,接收不到设备的数据,并且在IOS 原生APP上也是没有问题的
      2022-06-13
      回复
    • Lipeng
      Lipeng
      2022-06-14回复张伟勇
      还有一种可能就是MTU差别,看看有没有超过20个字节的数据包,可能需要拆包处理
      2022-06-14
      回复
    • 😑
      😑
      2022-06-15回复Lipeng
      拆包怎么处理呢?
      2022-06-15
      回复
    • Lipeng
      Lipeng
      2022-06-16回复😑
      把数据包分成不超过20个字节的数组,writeBLECharacteristicValue发送i,success回调中发i+1
      2022-06-16
      回复
    • 张伟勇
      张伟勇
      2022-06-16回复Lipeng
      数据是没有超过20个字节的,并且在其他蓝牙设备上的流程都一样,其他的都可以用,就这个不能回调
      2022-06-16
      回复
登录 后发表内容