微信小程序~獲取網絡狀態


    手機連接到互聯網有幾種方式:Wifi、2G、3G、4G,包括很快到來的5G,每種方式的上傳速度和下載速度差異很大,它們的計費方式的差異也導致用戶在使用互聯網服務的時候有不同的使用習慣。

    Wifi相對於其他幾種網絡連接方式,其速度會更快。Wifi一般都是免費供用戶使用,通過移動數據網絡是需要根據使用流量進行計費的。我們考慮這樣一個場景,小程序需要下載一些文檔,然后通過小程序的能力去預覽這個文檔,這些文檔可能文件體積比較大,對於某些用戶來說,他們並不想耗費太多的數據流量去預覽文檔。考慮到這樣的情況,我們可以通過小程序提供的獲取網絡狀態的能力,做一些更友好的體驗提示。

    代碼利用wx.getNetworkType獲取網絡狀態

代碼:

  // 預覽文檔
  lookFile(){
    wx.getNetworkType({
      success: function (res) {
        // networkType字段的有效值:
        // wifi/2g/3g/4g/unknown(Android下不常見的網絡類型)/none(無網絡)
        if (res.networkType == 'wifi') {
          // 從網絡上下載pdf文檔
          wx.downloadFile({
            url: 'https://pic25.nipic.com/20121205/10197997_003647426000_2.jpg',
            success: function (res) {
              // 下載成功之后進行預覽文檔
              wx.openDocument({
                filePath: res.tempFilePath
              })
            }
          })
        } else {
          wx.showModal({
            title: '提示',
            content: '當前為非Wifi環境,確定下載嗎?',
            confirmText: '確定',
            cancelText: '取消',
            success: function (res) {
              if (res.confirm) {
                console.log('確定操作')
                wx.downloadFile({
                  url: 'https://pic25.nipic.com/20121205/10197997_003647426000_2.jpg',
                  success: function (res) {
                    // 下載成功之后進行預覽文檔
                    wx.openDocument({
                      filePath: res.tempFilePath
                    })
                  }
                })
              } else if (res.cancel) {
                console.log('取消操作')
                wx.showToast({
                  title:'取消成功'
                })
              }
            }
          })
        }
      }
    })
  }

    某些情況下,我們的手機連接到網絡的方式會動態變化,例如手機設備連接到一個信號不穩定的Wifi熱點,導致手機會經常從Wifi切換到移動數據網絡。小程序宿主環境也提供了一個可以動態監聽網絡狀態變化的接口wx.onNetworkStatusChange,讓開發者可以及時根據網絡狀況去調整小程序的體驗,wx.onNetworkStatusChange這個接口的使用場景留給讀者來思考。

 

 

 

 

.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM