微信小程序低功耗藍牙開發(fā)那些坑(三)

前言

這幾天似乎風平浪靜,沒有什么大的問題,領(lǐng)導就開始考慮體驗度的事,說這個連接速度還是太慢,希望能夠把速度提快,我個人認為應(yīng)該沒有太多的改進空間,但是領(lǐng)導要求了,我也只能硬著頭皮看,結(jié)果發(fā)現(xiàn)了第三個坑.

藍牙連接的等待時間不確定問題

我自己看了一遍原來的代碼,發(fā)現(xiàn)有好幾處等待,是故意等待的,問了相關(guān)的人員以后,才知道,微信的低功耗藍牙在掃描完成以后,到連接之前,需要等到一個時間,官方說的三秒左右,于是乎,這位同事就等了個三秒,也就是說,實際的連接代碼是這樣:

 setTimeout(() => {
    wx.createBLEConnection({
      deviceId: that.deviceId,
      success: res => {
        console.log('連接藍牙', res)
        if (res.errCode == 0) {
          wx.showToast({
            title: '藍牙連接設(shè)備成功',
            icon: 'none'
          })
          //連接成功后的代碼
        }
      },
      fail: err => {
        console.log('連接失敗:', err)
        console.log(count): 
      },
      complete: function(res) {
        console.log('連接藍牙執(zhí)行', res)
      }
    })
  }, 3000)

這代碼我很難接受:無論如何都必須要等三秒
經(jīng)過多次試驗,貌似發(fā)現(xiàn)很多新手機只需要等個200-300毫秒就可以了,老手機也差不多1500毫秒,我猜測著三秒的話,估計是很差的那種手機了.
于是我改造了這塊代碼

 BleUtils.tryConnect = function(count,flag){
    if(count < 6 && flag == false){ //第一次進方法
        //等待500毫秒執(zhí)行一次連接
        setTimeout(function(){
        wx.createBLEConnection({
          deviceId: that.deviceId,
          success: res => {
            console.log('連接藍牙', res)
            if (res.errCode == 0) {
              wx.showToast({
                title: '藍牙連接設(shè)備成功',
                icon: 'none'
              })
              BleUtils.tryConnect(1,true); //讓他走連接成功的代碼
            }
          },
          fail: err => {
            console.log('連接失敗:', err)
            BleUtils.tryConnect(count + 1 ,false); //失敗后再次重試
          },
          complete: function(res) {
            console.log('連接藍牙執(zhí)行', res)
          }
        })
        },500);
        return ;
    }  
    if(count == 6){ //嘗試連接 超過3秒
        return;
    }
    if(flag == true){ //連接成功
        //走成功邏輯
        return;
    }
}

思路跟前面的重連差不多,都是多次嘗試,這樣既兼顧了慢的手機,也照顧了快的手機,領(lǐng)導拿幾臺手機嘗試,確實快了很多,十分滿意.
然而,新的坑已經(jīng)在路上..

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容