在App開發中,經常會遇到子頁面給父級頁面傳值,通過自定義事件,用戶可以輕松實現數據傳遞。
一、添加自定義事件監聽操作和標准js事件監聽類似,可直接通過window對象添加,如下:
window.addEventListener('customEvent',function(event){
//通過event.detail可獲得傳遞過來的參數內容....
});
1、customEvent 自定義事件的名稱
2、function 接收到值后處理的方法
二、觸發自定義事件
通過mui.fire()方法可觸發目標窗口的自定義事件:
mui.fire( target , event , data )
1、target Type:WebviewObject 需傳值的目標webview
2、event Type:String 自定義事件名稱
3、data Type:JSON json格式的數據
目標webview必須觸發loaded事件后才能使用自定義事件
若新創建一個webview,不等該webview的loaded事件發生,就立即使用mui.fire(webview,'eventName',{}),則可能無效;
例子:
父級頁面:
1 window.addEventListener('nameFun',function(event){ 2 3 //通過event.detail可獲得傳遞過來的參數內容.... 4 5 //event.detail為獲取到的值{yqid:""+chooseyqid+"",bbb:"bbb"} 6 var chooseYqidC = event.detail.chooseYqid;//獲取yqid的值chooseyqid 7 });
子頁面:
1 var selfPage = plus.webview.currentWebview();//獲取當前頁(子頁) 2 3 var openerPage = selfPage.opener();//獲取打開的父級頁 4 5 mui.fire(openerPage,'nameFun',{yqid:""+chooseyqid+"",bbb:"bbb"}); 6 7 selfPage.close();//關閉當前子頁 8 9 openerPage.show();//打開父級頁