关闭页面
mui框架将窗口关闭功能封装在mui.back
·
webview为预加载页面,则hide当前webview;
·
close当前webview;
mui框架中,有三种操作会触发页面关闭(执行mui.back方法):
·
.mui-action-back
·
· Android手机按下back按键
hbuilder中敲mheader
.mui-action-back
<header class="mui-bar mui-bar-nav">
<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
<h1 class="mui-title">标题</h1></header>
.mui-action-back
<button type="button" class='mui-btn mui-btn-danger mui-action-back'>关闭</button>
mui框架封装的页面右滑关闭功能,默认未启用,若要使用右滑关闭功能,需要在mui.init();
swipeBack参数,如下:
mui.init({
swipeBack:true //启用右滑关闭功能});
mui框架默认会监听Android手机的back按键,然后执行页面关闭逻辑; 若不希望mui自动处理back按键,可通过如下方式关闭mui的back按键监听;
mui.init({
keyEventBind: {
backbutton: false //关闭back按键监听
}});
mui.back()
mui.back()
mui.init方法的beforeback参数;beforeback的执行逻辑为:
·
beforeback参数对应的函数若返回false,则不再执行mui.back()
·
true或无返回值),继续执行mui.back()
beforeback参数,然后通过
mui.init({
beforeback: function(){
//获得列表界面的webview
var list = plus.webview.getWebviewById('list');
//触发列表界面的自定义事件(refresh),从而进行数据刷新
mui.fire(list,'refresh');
//返回true,继续页面关闭逻辑
return true;
}});
beforeback的执行返回必须是同步的(阻塞模式),若使用nativeUI这种异步js(非阻塞模式),则可能会出现意想不到的结果;比如:通过plus.nativeUI.confirm()
beforeback同步执行完毕,无返回值,继续执行mui.back()
nativeUI不会阻塞js进程):在这种情况下,若要自定义业务逻辑,就需要复写mui.back
//备份mui.back,mui.back已将窗口关闭逻辑封装的比较完善(预加载及父子窗口),因此最好复用mui.backvar old_back = mui.back;mui.back = function(){
var btn = ["确定","取消"];
mui.confirm('确认关闭当前窗口?','Hello MUI',btn,function(e){
if(e.index==0){
//执行mui封装好的窗口关闭逻辑;
old_back();
mui.back,不能简单通过addEventListener增加back按键监听, 因为addEventListener只会增加新的执行逻辑,老的监听逻辑依然会执行;
543627393学习哦!