收藏
回答

wx.onBLEConnectionStateChange获取不到数据更新?


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

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


如果在第一次进入连接页面,没有返回上一页,手动断开蓝牙连接,在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, '断开蓝牙连接失败')

        }

      })

    }

  })

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

4 个回答

  • Benson
    Benson
    2023-10-31

    试试这个,外层套个 var that = this;

    onBLEConnectionStateChange(){  
       var that = this; 
       wx.onBLEConnectionStateChange(function(res) {
           console.log(that.data.reConnected)
       })
    }
    


    2023-10-31
    有用
    回复
  • 骑白马的大师兄
    骑白马的大师兄
    2022-07-26

    wx.onBLEConnectionStateChange多次调用, 只有最后一次的回调才会触发, 这是不是个问题

    2022-07-26
    有用
    回复
  • 关静雅 หญิง
    关静雅 หญิง
    2022-06-15

    wx.onBLEConnectionStateChange()方法在第一次进入页面执行一次,返回上一页,再进入蓝牙连接页面不会在调用wx.onBLEConnectionStateChange()方法

    ------想要再次进入蓝牙页面调用wx.onBLEConnectionStateChange()方法的话,就要把这个方法写在onshow生命周期函数里面,这样每次回到这个页面到会调用。

    2022-06-15
    有用
    回复
  • Cjiang
    Cjiang
    2022-03-17

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

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

    2022-03-17
    有用
    回复
登录 后发表内容