MUI框架

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.back
var old_back = mui.back;
mui.back = function(){
  var btn = ["确定","取消"];
  mui.confirm(‘确认关闭当前窗口?‘,‘Hello MUI‘,btn,function(e){
    if(e.index==0){
        //执行mui封装好的窗口关闭逻辑;
        old_back();
    }
  });
}
时间: 2024-07-29 08:38:38

MUI框架的相关文章

移动端 mui框架中input输入框或任何输入框聚焦后页面自动上移

一.mui框架中点击input后,安卓手机弹出自带的输入键盘时,页面自动上移 实现方法: (1)只要把input标签放在mui-content这个类里面就可以了 <div class="mui-content"> <input .../> </div> 注意:在有些情况下不适用,当把input标签放入mui-scroll中就不行了,也就是说mui-content和mui-scroll同时存在时不适用 <div class="mui-c

MUI 框架微信支付

在MUI 框架中实现了支付宝支付后,以为MUI微信支付,也没什么大问题,结果这个问题困扰了我几天,后面再同事的提醒下终于弄出来了, 问题出在,开始使用Dcloud 公有证书 怎么也付不了....,后面改成自己就OK了....希望后来者看到此博,能节约一点时间. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" co

使用mui框架后a标签无法跳转

由于最近工作项目上使用到前台mui框架,笔者在将H5转换为jsp时,遇见各种各样问题,原因归结为对mui框架不熟悉,今天就遇见一个特别奇怪的问题,界面中超链接<a>标签无法跳转,笔者试着添加点击事件,但效果依然是无法跳转,查资料发现mui搞得鬼: 我的代码主要是下边代码搞得鬼: //删除出行人  mui('body').on('tap','.business_icon_remove',function(){    var parentNode_1 = this.parentNode,     

【MUI框架】学习笔记整理 Day 1

MUI 框架之 [原生UI] (1)accordion(折叠面板) 由二级列表演化而来 1 <ul class="mui-table-view"> 2 <li class="mui-table-view-cell mui-collapse"> 3 <a class="mui-navigate-right" href="#"></a> 4 <div class="m

mui框架中底部导航的跳转1

mui框架极大的方便了app的开发但是我们在做页面之间的切换时发现不能实现 a 链接的跳转,这是应为mui相关的一些控件是通过拦截a标签上的href来实现的,所以mui.js会阻止a标签上的href跳转, 为了让我们通过触摸下面的导航之后,把相对应的子页面加载到首页的内容区在index.html 下写: 地不连接为 让为了让内容在首页窗体内显示,我们还需要写下面的代码: 这里要注意的是其他页面上要有内容不然看不出来,必须是真机测试才能看出效果

MUI框架-01-介绍-创建项目-简单页面

MUI框架-01-介绍-准备-创建项目 从0开始快速高效学习 MUI 框架 官方文档:http://dev.dcloud.net.cn/mui/ui/ (1)MUI 介绍 MUI 是什么,解决了什么问题? MUI 官方号称最接近原生APP体验的高性能前端框架 简单的说就是webapp的以个开发框架 webapp和原生app性能及体验的差距,一直是移动app开发者放弃HTML5的首要原因. 浏览器天生的切页白屏.不忍直视的转页动画.浮动元素的抖动.无法流畅下拉刷新等问题,这些都让HTML5开发者倍

MUI框架-02-注意事项-适用场景-实现页面间传值

MUI框架-02-注意事项-适用场景-实现页面间传值 关于开发,我拷贝太多也没什么意义,就请查阅:官方文档:http://dev.dcloud.net.cn/mui/ui/ 快速入门 - 注意事项 有些可能看不懂,这样排是为了可以做 MUI 开发的时候,养成良好的习惯,避免不必要的错误 DOM 结构: 关于 mui 页面的 dom,你需要知道如下规则 固定栏靠前: 所谓的固定栏,也就是带有.mui-bar 属性的节点,都是基于 fixed 定位的元素: 常见组件包括:顶部导航栏(.mui-bar

MUI框架-07-HBuilder+夜神安卓模拟器

MUI框架-07-HBuilder+夜神安卓模拟器 有时候我们在 HBuilder 里面 web 浏览器预览我们的 MUI 项目界面时,总感觉这个 web 浏览器随便拖拉比例,大小可调,但它毕竟是浏览器,有很多安卓组件是没有办法预览的 今天教给大家用夜神安卓模拟器,预览 HBuilder 中 MUI 项目 并且,夜神模拟器有安卓4.4.2,还有7.1.2,我比较常用这两个搭配 下载夜神模拟器 免费的模拟器 下载地址:https://www.yeshen.com/ 一般默认安装即可 然后打开安卓模

MUI框架-09-MUI 与后台数据交互

MUI框架-09-MUI 与后台数据交互 本篇介绍使用 art-template 和原生 MUI 的数据交互 mui.ajax 来实现 我们大家都知道,想要数据交互就要有数据,每次当我们发送请求,我们要清楚,怎么发,发给谁,返回的数据是什么内容,格式 先放一张图,给大家学习的动力: 然后今天呢,介绍的是调用 API,API 是什么呢,就是一个接口,比如知乎日报的API ,我们可以通过这个 API 获取到知乎上最新的消息,并且是 json 格式,我们就不用再去找数据了,其他类型 API 还有 百度