关闭页面

关闭页面

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学习哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值