uni-appios白屏問題


之前出過一個修復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  
    }  
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM