2018-06-11

1、mui插件初始化

使用mui.init();进行mui插件初始化。

2、页面初始化

在app开发中,如果使用HTML5+扩展API,必须等plusReady事件发生后才能正常使用,mui将该事件封装成了mui.plusReady()方法,涉及到HTML5+的api,建议都写在mui.plusReady()方法中。

 mui.plusReady(function () {
            console.log("当前页面url:"+plus.webview.currentWebview().getURL());
        })

plusReady判断H5+的插件是否加载完毕

3. 创建子页面(专为解决android手机不流畅问题的)

  1. 解决思路:将需要滚动的区域通过单独的webview实现,完全使用原生滚动。具体做法是:将目标页面分解为主页面和内容页面,主页面显示卡头卡尾区域,比如顶部导航、底部选项卡等。内容页面显示具体需要滚动的内容,然后在主页面中调用mui.init()方法初始化内容页面。
mui.init({
        subpages:[{
            url:"html/subList.html",   //子页面的html地址
            id: "subList.html",            //子页面标志
            styles:{                                
                top:"40px",              //子页面顶部位置
                bottom:"0px",      //子页面底部位置
               width:subpage-width,  //子页面宽度 默认100%
               height:subpage-height, //子页面高度 默认100%
                    }
                }]
            });

4.打开新页面

1.做app的时候,需要转场到不同的页面,如果通过有刷新的方式打开,用户需要面对空白的页面等待;无刷新方式,通过js移入DOM节点,会碰到很高性能的挑战,DOM节点繁多,页面太大,转场动画不流畅甚至浏览器崩溃。
2.mui解决思路:单webview只承载单个页面的dom,减少dom曾级及页面大小。页面切换使用原生动画,将最耗性能的部分交给原生去做。

mui.openWindow({
    url:new-page-url,
    id:new-page-id,
    styles:{
      top:newpage-top-position,//新页面顶部位置
      bottom:newage-bottom-position,//新页面底部位置
      width:newpage-width,//新页面宽度,默认为100%
      height:newpage-height,//新页面高度,默认为100%
      ......
    },
    extras:{
      .....//自定义扩展参数,可以用来处理页面间传值
    },
    createNew:false,//是否重复创建同样id的webview,默认为false:不重复创建,直接显示
    show:{
      autoShow:true,//页面loaded事件发生后自动显示,默认为true
      aniShow:animationType,//页面显示动画,默认为”slide-in-right“;
      duration:animationTime//页面动画持续时间,Android平台默认100毫秒,iOS平台默认200毫秒;
    },
    waiting:{
      autoShow:true,//自动显示等待框,默认为true
      title:'正在加载...',//等待对话框上显示的提示内容
      options:{
        width:waiting-dialog-widht,//等待框背景区域宽度,默认根据内容自动计算合适宽度
        height:waiting-dialog-height,//等待框背景区域高度,默认根据内容自动计算合适高度
        ......
      }
    }
})  

页面传值,extras{},里面可以放键值对。

    extras:{
            name:'赵三',
            age:28,
        }

目标页面接收值:


        mui.plusReady(function() {
            var data = plus.webview.currentWebview(); //拿到此对象
            mui.toast(data.name)
            console.log(data.age);
            var nameobj = mui('#name');  //mui选择器,选中一个name
            nameobj[0].innerHTML = data.name;
            var ageObj = mui('#age');   //mui选择器,选中一个age #id .class
            ageObj[0].innerHTML = data.age;
        })

5.预加载

就是在用户还没有触发页面跳转的时候,提前创建目标页面,这样用户跳转的时候,可以立刻进行页面切换,体验效果好。

方式一:通过mui.init方法中的preloadPages参数进行配置.

mui.init({
  preloadPages:[
    {
      url:prelaod-page-url,
      id:preload-page-id,
      styles:{},//窗口参数
      extras:{},//自定义扩展参数
      subpages:[{},{}]//预加载页面的子页面
    }
  ],
  preloadLimit:5//预加载窗口数量限制(一旦超出,先进先出)默认不限制
});

1.特点:不会返回预加载每个页面的引用,若要获得对应webview引用,还需要通过plus.webview.getWebviewById方式获得

mui.init({
  preloadPages:[
    {
      url:'list.html',
      id:'list'
    }
  ]
});
var list = plus.webview.getWebviewByid('list');//这里可能返回空;

方式二:通过mui.preload方法预加载.

1.特点:通过mui.preload()方法预加载,可立即返回对应webview的引用,但一次仅能预加载一个页面;若需加载多个webview,则需多次调用mui.preload()方法;

var page = mui.preload({
    url:new-page-url,
    id:new-page-id,//默认使用当前页面的url作为id
    styles:{},//窗口参数
    extras:{}//自定义扩展参数
});

MUI-事件管理

1.事件绑定
除了可以使用addEventListener()方法监听某个特定元素上的事件外, 也可以使用.on()方法实现批量元素的事件绑定。

document.getElementById("bt").addEventListener('tap', function() {
    alert(1)
}

on()示例适用于批量元素绑定

mui(".mui-table-view").on('tap','.mui-table-view-cell',function(){
  //获取id
  var id = this.getAttribute("id");
  //传值给详情页面,通知加载新数据
  mui.fire(detail,'getDetail',{id:id});
  //打开新闻详情
  mui.openWindow({
    id:'detail',
    url:'detail.html'
  });
}) 
注意:这里一定要在mui.init()方法中配置gestureConfig参数来支持手势

点击
tap 单击屏幕
doubletap 双击屏幕

长按
longtap 长按屏幕
hold 按住屏幕
release 离开屏幕

滑动
swipeleft 向左滑动
swiperight 向右滑动
swipeup 向上滑动
swipedown 向下滑动

拖动
dragstart 开始拖动
drag 拖动中
dragend 拖动结束

1.批量事件绑定 .on("事件","子选择器",function事件);

//非真机无效
            mui.plusReady(function() {
                //这里一定要在mui.init()方法中配置gestureConfig参数来支持手势
                mui('.mui-table-view').on('tap','.mui-table-view-cell',function () {
                    //获取点击的id,this代表当前的点击对象
                    var id = this.getAttribute('id');
                    mui.toast('ok'+id);
                })
            })

2.事件取消

1.使用on()方法绑定后,可以使用off()方法取消

document.getElementById('bt2').addEventListener('tap', function() {
                    console.log('准备事件取消');
                    //注意,这里不支持匿名函数
                    mui('.mui-table-view').off('tap', '.mui-table-view-cell');
                })
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容