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了
原文地址:https://www.cnblogs.com/qdjj/p/14365789.html