MUI 中openWindow是打开新页面,当我们想要返回之前的页面中,如果是父级就不说了mui.back()就自动返回了,但是如果返回的是爷爷级的页面,甚至首页,该怎么处理?
如若通过openWindow重新打开爷爷页面。这样的话,打开之后,当你再次访问你之前访问过的页面,你就会发现,页面的操作依旧跟你离开之前一样
如果你的页面是根据参数传递,而展现出不同的数据时候,这时候你就会发现,数据不会刷新,数据会保持在你之前关闭的数据,参数也是你关闭之前的参数
这是因为你只是打开了新的页面,就相当于把之前的页面再次调用,并没有将你打开的页面数据关闭掉,所以当你再次进入的时候,它就会把你之前的页面再次调出,就会导致数据的混乱,所以当我们需要返回之前的页面,或者首页的时候,我们应该关闭掉我们不需要的页面,保证再次进入的时候的数据可以即时的更新。
关闭页面可以访问H5+官网的webview点击打开链接
这里案例,是返回首页下的主页面。因为index页面是登陆页面,所以需要返回的页面就成了首页下的第一个页面。这里我用了循环操作,进行判断,关闭所有不需要的页面即可。代码如下
//叉号返回
$("#main").on('tap', function() { //触发事件
var ws = plus.webview.all(); //获取所有已打开页面
console.log(ws.length);
for(var i = 0, len = ws.length; i < len; i++) { // 首页以及当前窗口对象,不关闭;
if(ws[i].id === "main") { //这里"main"就是我需要返回页面的ID
continue; //保留页面
} else {
ws[i].close('none'); //关闭所有不需要的窗口对象;
}
}
});
如果多个页面进入一个页面中,通过传递参数来显示不同的数据,推荐重写back(),返回时关闭页面,再次进入该页面时保证数据的刷新
old_back = mui.back;
mui.back = function(){
mui.currentWebview.close(); //关闭当前页面
old_back;
}