在MUI中页面之间的传参一般是分为两种的,一种是通过打开页面或者预加载页面的时候传递参数,另一种就是自定义事件了,我们来说说自定义事件传参的问题;
我们来分两种情况
一,页面已经存在的时候
这种情况是很容易的,直接就是mui.fire(目标页面,事件名称,{需要传递的参数})
二,页面是新创建的
如果你是这么写的话
var wv = plus.webView.create("a.html","a.html");
mui.fire(wv,"aa",{
id : 1
})
wv.show();
这样做在IOS下是有可能失败的;原因是自定义事件,必须这里webview的loaded事件发生后才能生效
所以你需要做如下改变
webview.addEventListener('loaded',function () {
webview.show('none', 1, function() {
console.log(1221);
webview.evalJS("test()");
mui.fire(webview, 'pageShow', {});
});
})
这样才没有问题,官网的原话是:**目标webview必须触发loaded事件后才能使用自定义事件
若新创建一个webview,不等该webview的loaded事件发生,就立即使用webview.evalJS()或mui.fire(webview,’eventName’,{}),则可能无效;**