uni-appios端app白屏问题
hbuilder版本高于3.0.0,则此方法不适用,使用最新的 https://www.cnblogs.com/qdjj/p/15196221.html
最近开发了一款使用uni-app做框架的app
打包上线后发现在ios端项目在后台运行时内存不足重回页面时当前tabbar页面是正常,但是其他tabber页会白屏
但是安卓端没有遇到这种问题,看了官方文档配置了
"kernel" : {
"ios" : "WKWebview",
"recovery" : "restart"
},
意思是页面崩溃后重启项目
但是实际还是没有生效,之后经过研究发现出一种方法可以用
// 判断是不是ios,是否发生白屏 uni.getSystemInfo({ success: (res) => { if (res.platform == 'ios') { const query = uni.createSelectorQuery().in(this); var isRecovery = true; query .select('#containerId') .boundingClientRect(data => { isRecovery = false; }) .exec(); var timer = setTimeout(() => { if (isRecovery) { uni.reLaunch({ url:'/pages/tabbar/user/user' }) clearTimeout(timer); timer = null; } }, 500) } }, })
因为只在ios上有问题,所有先判断是否是ios端,再通过
uni.createSelectorQuery()
方法看是否能够拿到页面数据,因为白屏是页面数据全部丢失了
如果拿不到就重新跳转当前页,这样就OK了