MUI 页面跳转、传参与刷新
2018-02-28 17:07
141 查看
MUI教程
教程地址:http://www.hcoder.net/course/info_211.html一、页面跳转
初始化时创建子页面mui.init({ subpages: [{ url: your - subpage - url, //子页面HTML地址,支持本地地址和网络地址 id: your - subpage - id, //子页面标志 styles: { top: subpage - top - position, //子页面顶部位置 bottom: subpage - bottom - position, //子页面底部位置 width: subpage - width, //子页面宽度,默认为100% height: subpage - height, //子页面高度,默认为100% ...... }, extras: {} //额外扩展参数 }] });
直接打开新页面
MUI封装了自己的页面打开的方法
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: { ..... //自定义扩展参数,可以用来处理页面间传值 } 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, //等待框背景区域高度,默认根据内容自动计算合适高度 ...... } } })
预加载页面
// 方式1 mui.init({ preloadPages: [{ url: prelaod - page - url, id: preload - page - id, styles: {}, //窗口参数 extras: {}, //自定义扩展参数 subpages: [{}, {}] //预加载页面的子页面 }] }); // 方式2 var page = mui.preload({ url: new - page - url, id: new - page - id, //默认使用当前页面的url作为id styles: {}, //窗口参数 extras: {} //自定义扩展参数 });
子页面使用场景
子页面适用于侧滑菜单
子页面适用于频繁切换的情况
子页面适用于下拉刷新和上
ceba
拉加载
二、页面传参
通过extras传参// 传递参数 mui.openWindow({url:'B.html',extras:{id:'100'}});
// 接收参数
var self=plus.webview.currentWebview();//获取当前窗体对象 var receiveID=self.id;//接收A页面传入的id参数值
通过fire()传参
// 传递参数 ( 要触发其他页面的自定义监听事件必须要先进行页面的预加载) mui.init({ preloadPages:[{ id:'detail.html', url:'detail.html' }] }); mui.fire(plus.webview.getWebviewById('page-id'), "pageRefresh",{ name: 'zhangsan' })
// 接收参数 window.addEventListener("pageRefresh", function (e) { //获得事件参数 var id = e.detail.id; });
三、页面刷新
页面切换时刷新webview有show事件及hide事件
先创建子页面
var subpages = ['./views/tab-webview-subpage-home.html', './views/tab-webview-subpage-list.html','./views/tab-webview-subpage-map.html', './views/tab-webview-subpage-setting.html']; var subpage_style = { // 子页面位置调整 top: '70px', bottom: '51px' }; var aniShow = {}; //创建子页面,首个选项卡页面显示,其它均隐藏; mui.plusReady(function() { var self = plus.webview.currentWebview(); for (var i = 0; i < 4; i++) { var temp = {}; var sub = plus.webview.create(subpages[i], subpages[i], subpage_style); if (i > 0) { sub.hide(); }else{ temp[subpages[i]] = "true"; mui.extend(aniShow,temp); } self.append(sub); } plus.device.setWakelock(true); });
创建当前页的 show 监听事件。代码如下:
mui.plusReady(function() { var self = plus.webview.currentWebview(); self.addEventListener('show',function(){ console.log('show'); // ... 后续为渲染页面代码 }); });
父页面A跳转到子页面B,B页面修改数据后再跳回A页面,刷新A页面数
// 父页面自定义页面刷新事件 window.addEventListener("pageRefresh", function (e) { // 重新获取数据或触发刷新 });
// 子页面触发父页面的自定义页面刷新事件 mui.fire(plus.webview.getWebviewById('page-id'), "pageRefresh" );
返回刷新
mui.plusReady(function() { var old_back = mui.back; mui.back = function() { var wobj = plus.webview.getWebviewById("page-id"); wobj.reload(true); old_back(); } });
H5+的重载方法
在子页面初始化时,注册beforeback方法;
mui.init({ beforeback: function() { //获得列表界面的webview var list = plus.webview.currentWebview().opener(); //触发列表界面的自定义事件(refresh),从而进行数据刷新 mui.fire(list, 'refresh'); //返回true,继续页面关闭逻辑 return true; } }); // 或者~ mui.init({ beforeback: function(){ //获得列表界面的webview var i = plus.webview.getWebviewById("./views/lsit.html"); if(i){ //触发列表界面的自定义事件(refresh),从而进行数据刷新 i.evalJS("getUserInfo()"); } return true; } });
在父页面中添加事件监听
window.addEventListener('refresh', function(e) { location.reload(); })
这样,在子页面执行返回操作mui.back()的时候,会执行父页面中的refesh事件,即location.reload(),刷新父页面;
官方文档说明:http://dev.dcloud.net.cn/mui/event/#customevent
相关文章推荐
- dcloud页面a跳转刷新mui
- mui解决跳转到页面返回不刷新问题
- C# 页面javascript 页面跳转刷新
- 解决react-native的Navigator跳转不刷新页面的问题
- JS定时刷新页面及跳转页面
- HTML 重定向 ----定时跳转刷新页面
- MUI beforeback方法,在页面返回之前所做的处理,比如,在返回子页面之前刷新父页面
- javascript控制页面(含iframe进行页面跳转)跳转、刷新的方法汇总
- window.location.href/replace/reload()--页面跳转+替换+刷新
- jquery的ajax异步请求上传完图片之后会有页面跳转和刷新如何解决?
- 页面自动刷新并跳转
- html刷新和定时跳转页面
- JS 页面跳转和刷新
- mui页面跳转
- JS页面跳转+JS在Iframe页面跳转、刷新
- window.location.href/replace/reload()--页面跳转+替换+刷新
- Hbuilder MUI 页面刷新及页面传值问题
- ASP.NET页面刷新和定时跳转
- 页面定时跳转的js和php的代码实现和页面定时刷新
- JS定时刷新页面及跳转页面