云海帆
云海帆
  • 发布:2016-01-28 11:07
  • 更新:2016-01-28 11:50
  • 阅读:2343

如何打开新页面,之后关掉当前页面?

分类:MUI

页面B 打开页面C, 然后页面B关掉自己,如下两个代码都不行,因为页面C无法显示。

//in PageB  
mui.openWindow("pageC")  
mui.back()
//in PageB  
var pageC = mui.openWindow("pageC")  
pageC.addEventListener("show", function(){  
    mui.back()  
})  
2016-01-28 11:07 负责人:无 分享
已邀请:
爱卡溜

爱卡溜

if(plus.webview.getWebviewById('viewid')){  
            plus.webview.close('viewid');         
        }
  • 云海帆 (作者)

    问题是我不想close, 只想用mui.back(), 而且你这个方法必须放在setTimeOut里面才管用。

    2016-01-28 11:18

wenju

wenju - 低调低调

我自己封装了个打开界面的方法,一直在用...

/*打开界面*/  
function openWindow(_url, params, isClose) {  
    //跳转界面后是否关闭当前页面  
    if (isClose) {  
        var curWin = plus.webview.currentWebview();  
        setTimeout(function() {  
            curWin.hide(); //先隐藏再关闭,避免出现关闭动画  
            curWin.close();  
        }, 240);  
    }  
    var win = plus.webview.getWebviewById(_url);  
    if (win){  
        //已经存在,则直接显示  
        win.show();  
    }else{  
        //打开新界面  
        mui.openWindow({  
            url: _url,  
            id: _url,  
            extras: params,  
            waiting: {  
                autoShow: false  
            },  
            show: {  
                duration: 200//Android和IOS统一动画时长200  
            }  
        });  
    }  
}
  • 云海帆 (作者)

    这个方法是能work,问题是有的页面是preload的,不想用close方法,是否有办法用mui.back实现呢

    2016-01-28 12:35

  • justjavac

    回复 云海帆:如果是 preload 的方式,把 curWin.close(); 去掉就行了。具体的可以看看 mui.back 的源码。

    2016-02-19 13:02

该问题目前已经被锁定, 无法添加新回复