微信小程序 低版本兼容

2022-04-27 11:36 更新

兼容

小程序的功能不斷的增加,但是舊版本的微信客戶端并不支持新功能,所以在使用這些新能力的時候需要做兼容。

開發(fā)者可以通過以下方式進行低版本的兼容:

1. 版本號比較

微信客戶端和小程序基礎(chǔ)庫的版本號風格為 Major.Minor.Patch(主版本號.次版本號.修訂版本號)。

文檔中會在組件,API等頁面描述中帶上各個功能所要求的最低基礎(chǔ)庫版本號。

開發(fā)者可以在小程序中通過調(diào)用 wx.getSystemInfo 或者 wx.getSystemInfoSync 獲取到當前小程序運行的基礎(chǔ)庫的版本號。通過版本號比較的方式進行運行低版本兼容邏輯。

版本號比較適用于所有情況。部分場景下也可以使用后面提到的方法完成。

注意:不要直接使用字符串比較的方法進行版本號比較。

版本號比較可以參考以下代碼:

function compareVersion(v1, v2) {
  v1 = v1.split('.')
  v2 = v2.split('.')
  const len = Math.max(v1.length, v2.length)

  while (v1.length < len) {
    v1.push('0')
  }
  while (v2.length < len) {
    v2.push('0')
  }

  for (let i = 0; i < len; i++) {
    const num1 = parseInt(v1[i])
    const num2 = parseInt(v2[i])

    if (num1 > num2) {
      return 1
    } else if (num1 < num2) {
      return -1
    }
  }

  return 0
}

compareVersion('1.11.0', '1.9.9') // 1
const version = wx.getSystemInfoSync().SDKVersion

if (compareVersion(version, '1.1.0') >= 0) {
  wx.openBluetoothAdapter()
} else {
  // 如果希望用戶在最新版本的客戶端上體驗?zāi)男〕绦?,可以這樣子提示
  wx.showModal({
    title: '提示',
    content: '當前微信版本過低,無法使用該功能,請升級到最新微信版本后重試。'
  })
}

2. API 存在判斷

對于新增的 API,可以通過判斷該API是否存在來判斷是否支持用戶使用的基礎(chǔ)庫版本。例如:

if (wx.openBluetoothAdapter) {
  wx.openBluetoothAdapter()
} else {
  // 如果希望用戶在最新版本的客戶端上體驗?zāi)男〕绦颍梢赃@樣子提示
  wx.showModal({
    title: '提示',
    content: '當前微信版本過低,無法使用該功能,請升級到最新微信版本后重試。'
  })
}

3. wx.canIUse

除了直接通過版本號判斷,也可以通過 wx.canIUse 來判斷是否可以在該基礎(chǔ)庫版本下直接使用。例如:

API 參數(shù)或返回值

對于 API 的參數(shù)或者返回值有新增的參數(shù),可以判斷用以下代碼判斷。

wx.showModal({
  success: function(res) {
    if (wx.canIUse('showModal.success.cancel')) {
      console.log(res.cancel)
    }
  }
})

組件

對于組件,新增的組件或?qū)傩栽谂f版本上不會被處理,不過也不會報錯。如果特殊場景需要對舊版本做一些降級處理,可以這樣子做。

Page({
  data: {
    canIUse: wx.canIUse('cover-view')
  }
})
<video controls="{{!canIUse}}">
  <cover-view wx:if="{{canIUse}}">play</cover-view>
</video>
canIUse 的數(shù)據(jù)文件隨基礎(chǔ)庫進行更新,新版本中的新功能可能出現(xiàn)遺漏的情況,建議開發(fā)者在使用時提前測試。

設(shè)置最低基礎(chǔ)庫版本

需要 iOS 6.5.8 / 安卓 6.5.7 及以上版本微信客戶端支持

為便于開發(fā)者解決低版本基礎(chǔ)庫無法兼容小程序的新功能的問題,開發(fā)者可設(shè)置小程序最低基礎(chǔ)庫版本要求。

開發(fā)者可以登錄小程序管理后臺,進入「設(shè)置 - 基本設(shè)置 - 基礎(chǔ)庫最低版本設(shè)置」進行配置。在配置前,開發(fā)者可查看近 30 天內(nèi)訪問當前小程序的用戶所使用的基礎(chǔ)庫版本占比,以幫助開發(fā)者了解當前用戶使用的情況。

設(shè)置后,若用戶基礎(chǔ)庫版本低于設(shè)置值,則無法正常打開小程序,并提示用戶更新客戶端版本。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號