兼容性說明

2020-02-12 18:11 更新

字節(jié)跳動(dòng)小程序目前迭代比較快,各個(gè) app 之間差異也比較大,開發(fā)者需要做好兼容工作,避免因?yàn)樵诘桶姹旧鲜褂昧艘粋€(gè)不兼容的 api 而出現(xiàn)體驗(yàn)問題。一般可以通過版本號(hào)比較、api 存在判斷、tt.caniuse、區(qū)分宿主 app 三種方式進(jìn)行兼容處理。另外上線發(fā)布的時(shí)候也可以選擇支持小程序的最低基礎(chǔ)庫版本。


版本號(hào)比較

可以通過tt.getSystemInfo或者tt.getSystemInfoSync得到SDKVersion,SDKVersion是三位版本號(hào),由[大版本].[小版本].[修訂版本]三部分組成,例如:1.11.1。一般會(huì)在 api 文檔上標(biāo)注支持該 api 的最低版本,或者在組件文檔上標(biāo)注支持某個(gè)屬性的最低版本。


api 存在判斷

一般新增的 api 在低版本基礎(chǔ)庫上是不存在的,貿(mào)然調(diào)用會(huì)導(dǎo)致錯(cuò)誤。建議做如下判斷:

if (tt.navigateToMiniProgram) {
  tt.navigateToMiniProgram();
} else {
  tt.showModal({
    title: "提示",
    content:
      "當(dāng)前客戶端版本過低,無法使用該功能,請(qǐng)升級(jí)客戶端或關(guān)閉后重啟更新。"
  });
}


caniuse

如果 api 的返回參數(shù)有更新,可以通過caniuse來判斷:

tt.getImageInfo({
	src: '../images/test.jpg',
    success: (e) {
    	if (tt.caniuse('getImageInfo.path')) {
        	console.log(e.path)
        }
    }
})


區(qū)分 app

目前字節(jié)跳動(dòng)小程序已經(jīng)集成到了多款 app,可以通過如下方法判斷小程序運(yùn)行于哪個(gè) app

const info = tt.getSystemInfoSync();
console.log(info.appName);
if (info.appName.toUpperCase() === 'DOUYIN') {
	// do something
}

info.appName對(duì)應(yīng)的 app

說明
Toutiao今日頭條
Douyin抖音短視屏
XiGua西瓜視頻
news_article_lite頭條極速版


基礎(chǔ)庫最低版本限制

可在開發(fā)者后臺(tái),進(jìn)入設(shè)置頁--選擇 JSSDK 最低版本號(hào)

圖片名稱

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)