wx.onBLEConnectionStateChange获取不到数据更新?
发布于 5 年前 作者 yang69 14491 次浏览 来自 官方Issues

连接蓝牙后,监听蓝牙连接状态的改变事件

返回上一页,再进入蓝牙连接页面,手动关闭蓝牙连接

如果在第一次进入连接页面,没有返回上一页,手动断开蓝牙连接,在wx.onBLEConnectionStateChange方法是可以获取到更新的值

wx.onBLEConnectionStateChange()方法在第一次进入页面执行一次,返回上一页,再进入蓝牙连接页面不会在调用wx.onBLEConnectionStateChange()方法,手动断开蓝牙连接,怎么解决在wx.onBLEConnectionStateChange方法里面不能获取this.data数据更新问题,this?

关键点是在进入蓝牙连接页面不执行wx.onBLEConnectionStateChange方法监听了,不能正确找到页面this问题?

Page({

    data: {

      reConnected: true //默认值

    },

    //  监听蓝牙状态改变

    onBLEConnectionStateChange() {

      wx.onBLEConnectionStateChange(res => {

        this.setData({

          //测试发现页面数据也不会更新

        })

        console.log(this.data.reConnected) //true 输出没有改变,导致执行了重新连接

        if (!res.connected && this.data.reConnected) {

          //重新连接逻辑,断开连接和this.data.reConnected状态是重新连接才执行

        }

      })

    },

    //断开蓝牙连接

    closeBLEConnection() {

      this.data.reConnected = false //改变值,不重新连接状态

      wx.closeBLEConnection({

        deviceId,

        success: res => {

          console.log(res, ‘断开蓝牙连接成功’)

        },

        fail: err => {

          console.log(err, ‘断开蓝牙连接失败’)

        }

      })

    }

  })

1 回复

你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

麻烦复现问题的时候,在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,麻烦提供一下微信号,时间点(具体到分钟)

回到顶部