天天看點

Hbuilder MUI 頁面重新整理及頁面傳值問題

一、頁面重新整理問題 

1.父頁面A跳轉到子頁面B,B頁面修改資料後再跳回A頁面,重新整理A頁面資料 

(1).父頁面A代碼 

window.addEventListener(“pageflowrefresh”, function (e) { 
location.reload(); 
}); 
           

(2).子頁面B代碼 

var main = plus.webview.currentWebview().opener();//擷取父頁面A對象 
var main = plus.webview.getWebviewById(‘A’);//或者通過A頁面id擷取A頁面對象 
mui.fire(main, “pageflowrefresh” );//出發A頁面的pageflowrefresh方法 
mui.redirect(‘A’,’A.html’);//跳轉到A頁面 
           

二、頁面間傳值問題 

1.從A頁面傳值到B頁面(mui.fire()方式) 

(1).A頁面代碼 

var main = plus.webview.getWebviewById(‘B’); 
mui.fire(main, “pageflowrefresh”,{ 
id:100 
}) 
           

(2).B頁面代碼 

window.addEventListener(“pageflowrefresh”, function (e) { 
//獲得事件參數 
var id = e.detail.id; 
}); 
           

2.從A頁面傳值到B頁面(mui.方式) 

(1).A頁面代碼 

var param = { //這是要傳的資料 
userId: ‘userId11111111111’, 
toKen: ‘toKen’, 
userRole: ‘userRole’ 
}; 
mui.openWindow({//目标頁面 
url: ‘second.html’, 
id: ‘second.html’, 
extras: param 
}); 
           

(2).B頁面代碼( plus必須要放在plusReady裡) 

mui.plusReady(function() { 
var self = plus.webview.currentWebview(); //擷取目前窗體對象 
alert(self.userId); //接收A頁面傳入的id參數值 
});
           

三、送出成功後跳轉頁面,并重新整理 

A頁面: 

//獲得清單界面的webview 
var i = plus.webview.getWebviewById(“ArticleExamine.html”); 
//觸發前往頁面的自定義事件(例:AddNew),進而進行資料重新整理 
mui.fire(i,’AddNew’); 
if(i){ 
//觸發清單界面的自定義事件(refresh),進而進行資料重新整理 
i.evalJS(“ArticleList(1, 10);”); 
} 
           

B頁面: 

//添加AddNew自定義事件監聽 
window.addEventListener(‘AddNew’,function(){ 
document.getElementById(“news”).innerHTML = “”; 
});
           

繼續閱讀