页面结构为“列表+详情”,没有采用预加载的方式打开,具体情况如下:
点击列表页直接使用mui.openWindow()打开详情页。代码如下:
mui.openWindow({
id:'invoice-detail.html',
url:'invoice-detail.html',
show:{
aniShow:'pop-in',
},
waiting:{
autoShow:false,
},
extras:{
objId:objId
}
});
详情页的plusReady中创建了当前页的show监听事件。代码如下:
mui.plusReady(function() {
var self = plus.webview.currentWebview();
self.addEventListener('show',function(){
console.log('show detail');
console.log('id:'+self.objId);
// ... 后续为渲染页面代码
});
});
遇到的问题是:当多次点击列表页进入详情页,并不是每次都能触发show事件。
【结论】
1、预加载时,执行mui.back隐藏页面
2、非预加载时,执行mui.back关闭页面
3、webview有show事件及hide事件
导致本次问题的原因是页面未采用预加载方式,每次都是重新创建webview导致show事件监听不稳定。
感谢@DCloud_MUI_FXY和@maq帮助
关闭页面相关的文档。
http://dev.dcloud.net.cn/mui/window/#closewindow
Eason (作者)
我在文档里也没找到,后来看到一个官方的同学提到就用了。别高兴的太早,说不定是有bug所以没放出啊。调试通过求分享解决方案。
2016-02-22 09:59