白屏主要是因爲用戶的微信當前版本太低,本人的項目是用的uni-app框架寫的,裏面會用到微信的一些新功能,此時低版本的微信客戶端訪問小程序就會報錯,然後就白屏。
解決辦法主要有兩個:
第一種:讓低版本的用戶更新微信版本。當然這個需要客戶配合,如果客戶不升級的話,那就只能採取第二種方法。
第二種:在用到新功能的地方加上try{}catch(e){}。比如我的項目就是在低版本的客戶端提示uni.getAccountInfoSync is not a function。此時全局搜索getAccountInfoSync,將代碼加上異常處理,最好是在異常處理時提示用戶更新。
try{packName = uni.getAccountInfoSync() ? uni.getAccountInfoSync().miniProgram.appId : '';} catch(e){ uni.showModal({content: '請更新到最新版本的微信app',success:function(){},showCancel:false,})}
打包後的可以修改成
{var e="";if("wx"===I()||"qq"===I()){try{e=t.getAccountInfoSync()?t.getAccountInfoSync().miniProgram.appId:""}catch(err){t.showModal({content: '請更新到最新版本的微信app',success:function(){},showCancel:false})}}return e}