連勝老師今天來(lái)說(shuō)一下小程序后臺(tái),運(yùn)維中心經(jīng)常報(bào)的一個(gè)錯(cuò)誤:錯(cuò)誤提示:wx.getSetting is not a function;at App lifeCycleMethod onLaunch function。
這里的wx.getSetting,可能是其他API,比如wx.getBackgroundAudioManager,wx.saveVideoToPhotosAlbum等。
這些API有個(gè)共同點(diǎn)兒:并非小程序基本庫(kù)1.0.0就支持,都是后續(xù)某個(gè)基礎(chǔ)庫(kù)版本才開始支持。
有些同學(xué)已經(jīng)在小程序后臺(tái),設(shè)置了基礎(chǔ)庫(kù)的最低支持版本,依然會(huì)報(bào)錯(cuò),難道是微信的bug?
然后,就只能默默的懷疑是微信官方的bug了...
為什么這個(gè)錯(cuò)誤會(huì)在微信客戶端版本6.5.8之前會(huì)有問(wèn)題,而6.5.8之后就正常了?
(微信客戶端6.5.8的截圖如下)
我們?cè)谂袛郃PI是否支持時(shí),方法比較多,其中微信官方給過(guò)一種《比較小程序基礎(chǔ)庫(kù)版本號(hào)的正確方法》,大家可以自己到開發(fā)者社區(qū)去搜索。
這里說(shuō)的基礎(chǔ)庫(kù)版本(SDKVersion),是通過(guò)wx.getSystemInfo這個(gè)API進(jìn)行獲取的,來(lái)看一下官方文檔:
原來(lái),這個(gè)API是從基礎(chǔ)庫(kù)1.1.0開始支持的,也就是說(shuō)1.1.0之前的1.0.0和1.0.1版本就獲取不到這個(gè)值。
因此,可以確定的是,小程序后臺(tái)設(shè)置的基礎(chǔ)庫(kù)最低版本,應(yīng)該是用SDKVersion進(jìn)行判斷的,各位同學(xué)在使用API時(shí),建議還是使用其他判斷方式,比如wx.canIUse('getSetting')。