在App开发中,经常会遇到子页面给父级页面传值,通过自定义事件,用户可以轻松实现数据传递。
一、添加自定义事件监听操作和标准js事件监听类似,可直接通过window对象添加,如下:
window.addEventListener('customEvent',function(event){
//通过event.detail可获得传递过来的参数内容....
});
1、customEvent 自定义事件的名称
2、function 接收到值后处理的方法
二、触发自定义事件
通过mui.fire()方法可触发目标窗口的自定义事件:
.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',{}),则可能无效;
例子:
父级页面:
window.addEventListener('nameFun',function(event){
//通过event.detail可获得传递过来的参数内容....
//event.detail为获取到的值{aaa:"aaa",bbb:"bbb"}
});
子页面:
var selfPage = plus.webview.currentWebview();
var openerPage = selfPage.opener();
mui.fire(openerPage,'nameFun',{aaa:"aaa",bbb:"bbb"});
selfPage.close();
openerPage.show();