白屏主要是因为用户的微信当前版本太低,本人的项目是用的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}