1. 程式人生 > >小程式中wx.xx is not a function的報錯

小程式中wx.xx is not a function的報錯

連勝老師今天來說一下小程式後臺,運維中心經常報的一個錯誤:錯誤提示:wx.getSetting is not a function;at App lifeCycleMethod onLaunch function。

這裡的wx.getSetting,可能是其他API,比如wx.getBackgroundAudioManager,wx.saveVideoToPhotosAlbum等。

這些API有個共同點兒:並非小程式基本庫1.0.0就支援,都是後續某個基礎庫版本才開始支援。

有些同學已經在小程式後臺,設定了基礎庫的最低支援版本,依然會報錯,難道是微信的bug

然後,就只能默默的懷疑是微信官方的bug了...

為什麼這個錯誤會在微信客戶端版本6.5.8之前會有問題,而6.5.8之後就正常了?

(微信客戶端6.5.8的截圖如下)

我們在判斷API是否支援時,方法比較多,其中微信官方給過一種《比較小程式基礎庫版本號的正確方法》,大家可以自己到開發者社群去搜索。

這裡說的基礎庫版本(SDKVersion),是通過wx.getSystemInfo這個API進行獲取的,來看一下官方文件:

原來,這個API是從基礎庫1.1.0開始支援的,也就是說1.1.0之前的1.0.0和1.0.1版本就獲取不到這個值。

因此,可以確定的是,小程式後臺設定的基礎庫最低版本,應該是用SDKVersion進行判斷的,各位同學在使用API時,建議還是使用其他判斷方式,比如wx.canIUse('getSetting')。