|
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了
来源:https://www.cnblogs.com/qdjj/p/14365789.html |