当前窗口A为openWin打开的, 非预加载, 然后在窗口A中openWin打开B窗口, 然后关闭A窗口:代码如下:
//打开新窗口
mui.openWindow({
id: "b",
urll: "b.html"
});
//关闭当前窗口
mui.back();
//或
plus.webview.currentWebview().close();
问题: 执行以上代码后会显示打开A的窗口(A的opener), 而非B窗口, 并且进度条会持续加载.
目前解决方法:
//在关闭窗口代码上加入延迟
setTimeout(function(){
plus.webview.currentWebview().close();
}, 100)
请问有没有更好的解决方案?
3 个回复
F先生
打开一个新的页面:
mui.openWindow({
url: “”,
id: “”,
extras: {
// 传值
},
createNew: false,
show: {
autoShow: true, //页面loaded事件发生后自动显示,默认为true
},
waiting: {
autoShow: true, //自动显示等待框,默认为true
title: '正在加载...', //等待对话框上显示的提示内容
}
})
关闭当前页面:
方法一:在当前页面关闭
plus.webview.close(plus.webview.currentWebview());
方法二:开启新页面后,关闭父页面。(新页面中)
document.addEventListener("plusready", function() {
plus.webview.currentWebview().opener().close("none");
});
Trust - 少说废话
mui.back()的逻辑会返回上一级页面。
实现如你描述的功能,通常这样处理:
1、打开B页面。
2、在B页面中,关闭A页面。
请参考相关API
Webview模块
查找指定标识的WebviewObject窗口
关闭Webview窗口
l***@live.com
“1、打开B页面。
2、在B页面中,关闭A页面。”
这样做关闭A页面是没问题了,可是视觉体验不佳啊,因为已经来到B页面了,然后执行关闭A页面的代码时,A页面会先闪出来,然后才消失。每次都如此,使用体验很不好。有没有什么解决办法?
2018-09-29 15:20
6***@qq.com - 犇犇-猫
又被```javascript
mui.openWindow({
id: "b",
urll: "b.html"
});