之前出过一个修复uni-app在iso中白屏的问题,但是hbuilder版本过超过3.0.6会造成方法无效
最新方法如下
1、需要一个全局挂载的工具类,Vue.prototype.$utils = utils
2、在需要使用的页面(一般为tab页)最外层需要设置为同一个class名称
3、在onshow方法调用
let pageList = {}; const utils = { reloadCurrentPage: function(_self, isTab = true) { // #ifdef APP-PLUS var route = _self.$scope.route var data = _self.$scope.options && _self.$scope.options.data var url = '/' + route if (data) { url = '/' + route + '?data=' + data } var isRecovery = true; let newTime = Date.now(); if (pageList[url]) { const query = uni.createSelectorQuery().in(_self); //这里select()中替换为自己的样式class名称 query.select('.container').fields({size:true}, data => { isRecovery = false }).exec(); setTimeout(() => { if (isRecovery) { //如果获取不到节点 //确保只刷新一次 if (newTime - pageList[url] > 3000) { //超过3秒才重新刷新,这里设置几秒就行,目的是防止无限刷新 //因为刷新后页面肯定会出来,但是立马再次调用该方法不一定能获取节点 pageList[url] = newTime; if (isTab) { uni.reLaunch({ url }) } else { uni.redirectTo({ url }) } } } }, 600) } else { pageList[url] = newTime; } // if (plus.os.name === 'iOS') { // } // #endif } }