
mui主张用webview方式开发APP(webview你可以理解为PC站中的iframe方式),所以MUI本身不支持单页面应用的开发,如果想开发单页面应用,建议使用VUE、angular、backbone等这类框架开发。只用MUI是不可能开发单页面应用了,最基础的一条,它没有“路由”这个概念,所以不可能用它开发单页面应用
一、页面刷新问题
1父页面A跳转到子页面B,B页面修改数据后再跳回A页面,刷新A页面数据
(1)父页面A代码
windowaddEventListener("pageflowrefresh", function (e) {
locationreload();
});
(2)子页面B代码
var main = pluswebviewcurrentWebview()opener();//获取父页面A对象
var main = pluswebviewgetWebviewById('A');//或者通过A页面id获取A页面对象
muifire(main, "pageflowrefresh" );//出发A页面的pageflowrefresh方法
muiredirect('A','Ahtml');//跳转到A页面
二、页面间传值问题
1从A页面传值到B页面(muifire()方式)
(1)A页面代码
var main = pluswebviewgetWebviewById('B');
muifire(main, "pageflowrefresh",{
id:100
})
(2)B页面代码 >
为解决HTML5在低端Android机上的性能缺陷,mui引入了原生加速,其中最关键的就是webview控件,因此mui若要发挥其全部能力,需和5+ App配合适用,若脱离5+ App,mui功能会受限,主要涉及三个部分:一、webview窗口相关涉及webview的,除了5+App,其它所有手机浏览器及PC浏览器均无法使用,涉及功能点包括:webview模式窗体动画创建子窗口(除了为解决区域滚动的常见双webview场景,还涉及webview模式的选项卡等多webview场景)webview模式的侧滑菜单(也有div方式侧滑菜单)webview模式的tab选项卡(也有div方式选项卡)nativeUI,如原生的警告框、确认框、popover、actionsheet、toast。这些也有HTML5的实现。预加载自定义事件二、第三方扩展插件涉及webview的,除了5+App,其它所有手机浏览器及PC浏览器均无法使用,目前主要包括:语音输入;三、Touch事件相关(注意pc浏览器没有touch事件)Touch事件相关的,手机端浏览器均可使用、pc端chrome模拟手机浏览器也可以正常使用。但普通PC端浏览器因为没有touch事件,可以显示控件但滑动 *** 作功能会受限;涉及功能点包括:手势事件mui封装的tap相关处理业务:折叠面板、二级列表、二级选项卡;mui封装的swipe、drag相关处理业务:轮播、可左右滑动的图文表格、可左右滑动的9宫格、滑动触发列表项菜单、可拖动式侧滑菜单、下拉刷新和上拉加载、可拖动式选项卡备注:在PC端,大家将tap替换成click,将HTML5默认的Drag事件替换mui 的swipe和drag,就可以解决如上两个问题。除上述列出的功能点,其它mui功能,均可以在其它手机浏览器及PC服务端使用,所有CSS均不受影响。
为解决HTML5在低端Android机上的性能缺陷,mui引入了原生加速,其中最关键的就是webview控件,因此mui若要发挥其全部能力,需和5+ App配合适用,若脱离5+ App,mui功能会受限,主要涉及三个部分
DOM结构
关于mui页面的dom,你需要知道如下规则。
固定栏靠前
所谓的固定栏,也就是带有mui-bar属性的节点,都是基于fixed定位的元素;常见组件包括:顶部导航栏(mui-bar-nav)、底部工具条(mui-bar-footer)、底部选项卡(mui-bar-tab);这些元素使用时需遵循一个规则:放在mui-content元素之前,即使是底部工具条和底部选项卡,也要放在mui-content之前,否则固定栏会遮住部分主内容;
### 一切内容都要包裹在mui-content中
除了固定栏之外,其它内容都要包裹在mui-content中,否则就有可能被固定栏遮罩,原因:固定栏基于Fixed定位,不受流式布局限制,普通内容依然会从top:0的位置开始布局,这样就会被固定栏遮罩,mui为了解决这个问题,定义了如下css代码:
[css] view plain copy
mui-bar-nav ~ mui-content {
padding-top: 44px;
}
mui-bar-footer ~ mui-content {
padding-bottom: 44px;
}
mui-bar-tab ~ mui-content {
padding-bottom: 50px;
}
你当然可以通过自定义CSS的方式实现如上类似效果,但为了使用简便,建议将除固定栏之外的所有内容,全部放在mui-content中。
始终为button按钮添加type属性
若button按钮没有type属性,浏览器默认按照type=submit逻辑处理,这样若将没有type的button放在form表单中,点击按钮就会执行form表单提交,页面就会刷新,用户体验极差。
窗口管理
页面初始化:必须执行muiinit方法
mui在页面初始化时,初始化了很多参数配置,比如:按键监听、手势监听等,因此mui页面都必须调用一次muiinit()方法;
页面跳转:抛弃href跳转
当浏览器加载一个新页面时,若页面DOM尚未渲染完毕,页面会先显示空白,然后等DOM渲染完毕后,再显示具体内容,这是WEB浏览器技术无法逾越的体验障碍;为解决这个问题,建议使用[muiopenWindow方法](>
以上就是关于mui制作的app怎么才能选择手机的文件全部的内容,包括:mui制作的app怎么才能选择手机的文件、mui为什么父页面打开子页面出发了refresh、mui适用场景说明,能不能在普通浏览器里使用,能否用于wap网站等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)