移动端开发框架mui之工具包(utils)中的方法介绍

MUI 官网:https://www.dcloud.io/mui.html

MUI 文档:https://dev.dcloud.net.cn/mui/ui/

演示地址:https://dcloud.io/hellomui/ (支持手机和电脑浏览器)

开发工具:https://www.dcloud.io/hbuilderx.html (Hbuilder X)

 


init 方法

mui框架将很多功能配置都集中在mui.init方法中,要使用某项功能,只需要在mui.init方法中完成对应参数配置即可,目前支持在mui.init方法中配置的功能包括:创建子页面关闭页面手势事件配置预加载下拉刷新上拉加载设置系统状态栏背景颜色

mui需要在页面加载时初始化很多基础控件,如监听返回键,因此务必在每个页面中调用

以下各配置模块在其对应文档中有详细阐述,请点击链接查看,这里只列出所有可配置项

mui.init({
//子页面
	subpages: [{
		//...
	}],
//预加载
	 preloadPages:[
	    //...
 	 ],
//下拉刷新、上拉加载
 	pullRefresh : {
	   //...
     	},
//手势配置
 	 gestureConfig:{
	   //...
	},
//侧滑关闭
	swipeBack:true, //Boolean(默认false)启用右滑关闭功能
	
//监听Android手机的back、menu按键
	keyEventBind: {
		backbutton: false,  //Boolean(默认true)关闭back按键监听
		menubutton: false   //Boolean(默认true)关闭menu按键监听
	},
//处理窗口关闭前的业务
	beforeback: function() {
		//... //窗口关闭前处理其他业务详情点击 ↑ "关闭页面"链接查看
	},
//设置状态栏颜色
	statusBarBackground: '#9defbcg', //设置状态栏颜色,仅iOS可用
	preloadLimit:5//预加载窗口数量限制(一旦超出,先进先出)默认不限制
})
		

通过 statusBarBackground:rgb  属性设置状态栏颜色(iOS7.0+、安卓不支持)格式为#RRGGBB。

mui.init({
	statusBarBackground: '#9defbcg',
})

mui默认会监听Android手机的物理按键( back&menu ),若不希望自动处理按键可通过以下方式关闭

mui.init({
	//监听Android手机的back、menu按键
	keyEventBind: {
		backbutton: true,  //Boolean(默认true)关闭back按键监听
		menubutton: true   //Boolean(默认true)关闭menu按键监听
	},
})

mui()

mui使用css选择器获取HTML元素,返回mui对象数组。

mui("p"):选取所有<p>元素
mui("p.title"):选取所有包含.title类的<p>元素

若要将mui对象转化成dom对象,可使用如下方法(类似jquery对象转成dom对象):

//obj1是mui对象
var obj1 = mui("#title");
//obj2是dom对象
var obj2 = obj1[0]; 

MUI框架的定位是“最接近原生体验的移动App的UI框架”, 因此和jQuery有所区别,很少为简化DOM操作而封装API,具体可参考MUI产品概述; 该函数的设计目的,更多是为了配合MUI插件使用,比如图片轮播、下拉刷新、区域滚动等,如下为详细示例:

示例1:跳转到图片轮播的第二张图片

mui('.mui-slider').slider().gotoItem(1);

示例2:重新开启上拉加载

mui('#pullup-container').pullRefresh().refresh(true);

each()

each既是一个类方法,同时也是一个对象方法,两个方法适用场景不同;换言之,你可以使用 mui.each() 去遍历数组或json对象,也可以使用mui(selector).each() 去遍历DOM结构。

示例1

输出当前数组中每个元素的平方

var array = [1,2,3]
mui.each(array,function(index,item){
  console.log(item*item);
}) 

示例2

当前页面中有三个字段,如下:

<div class="mui-input-group">
  <div class="mui-input-row">
    <label>字段1:</label>
    <input type="text" class="mui-input-clear" id="col1" placeholder="请输入">
  </div>
  <div class="mui-input-row">
    <label>字段2:</label>
    <input type="text" class="mui-input-clear" id="col2" placeholder="请输入">
  </div>
  <div class="mui-input-row">
    <label>字段3:</label>
    <input type="text" class="mui-input-clear" id="col3" placeholder="请输入">
  </div>
</div>

提交时校验三个字段均不能为空,若为空则提醒并终止业务逻辑运行,使用 each() 方法循环校验,如下:

var check = true;
mui(".mui-input-group input").each(function () {
  //若当前input为空,则alert提醒
  if(!this.value||trim(this.value)==""){
    var label = this.previousElementSibling;
    mui.alert(label.innerText+"不允许为空");
    check = false;
    return false;
  }
});
//校验通过,继续执行业务逻辑
if(check){
  //.....
}

extend()

将两个对象合并成一个对象。

示例

var target = {
  company:"dcloud",
  product:{
    mui:"小巧、高效"
  }
} 
var obj1 = {
  city:"beijing",
  product:{
    HBuilder:"飞一样的编码"
  }
}
mui.extend(target,obj1);
//输出:{"company":"dcloud","product":{"HBuilder":"飞一样的编码"},"city":"beijing"}
console.log(JSON.stringify(target));

从如上输出可以看到,product节点下的mui被替换成了HBuilder,因为默认仅合并对象根节点下的key、value;如果想深度合并,则可以传入deep参数,如下:

var target = {
  company:"dcloud",
  product:{
    mui:"小巧、高效"
  }
} 
var obj1 = {
  city:"beijing",
  product:{
    HBuilder:"飞一样的编码"
  }
}
//支持深度合并
mui.extend(true,target,obj1);
//输出:{"company":"dcloud","product":{"mui":"小巧、高效","HBuilder":"飞一样的编码"},"city":"beijing"}
console.log(JSON.stringify(target));

later()

setTimeOut封装

scrollTo()

滚动窗口屏幕到指定位置,该方法是对 window.scrollTo() 方法在手机端的增强实现,可设定滚动动画时间及滚动结束后的回调函数;鉴于手机屏幕大小,该方法仅可实现屏幕纵向滚动。

示例:

1秒钟之内滚动到页面顶部

mui.scrollTo(0,1000);

 

os

我们经常会有通过 navigator.userAgent 判断当前运行环境的需求,mui对此进行了封装,通过调用mui.os.XXX即可

示例:

检测是否为iOS或安卓系统版本是否小于4.4

 if(mui.os.ios||(mui.os.android&&parseFloat(mui.os.version)<4.4)){
   //...
 } 

 


原文链接: https://dev.dcloud.net.cn/mui/util/#init

 

 

 

 

 

 

 

 

### 在真机上运行并调试使用 MUI 框架开发的移动应用 要在真机上运行并调试使用 MUI 框架开发的移动应用,可以通过 HBuilderX 提供的“真机运行”功能实现。以下是具体的操作步骤和注意事项: 1. **确保开发环境配置正确** 确保已经安装了 HBuilderX,并且项目是基于 MUI 框架开发的。MUI 是一个轻量级的前端框架,专为移动端开发设计,适用于 HTML5 应用的构建。在 HBuilderX 中创建或打开项目时,确保所有依赖文件(如 `mui.min.js` 和 `mui.min.css`)已正确引入。 2. **连接手机并启用调试模式** 使用数据线将手机连接到电脑,并确保手机已启用“开发者选项”和“USB调试模式”。不同品牌的手机开启方式略有不同,通常需要在“设置” -> “关于手机”中连续点击“版本号”以激活“开发者选项”,然后在“开发者选项”中启用“USB调试”。 3. **在 HBuilderX 中选择“真机运行”** 在 HBuilderX 中打开项目,点击顶部菜单栏的“运行”按钮,然后选择“真机运行”。正常情况下,HBuilderX 会检测到已连接的设备,并在右侧设备列表中显示手机名称。如果设备未显示,可以参考 HBuilderX 的真机运行故障排查指南。 4. **安装基座并运行应用** 首次运行时,HBuilderX 会在手机上安装一个“基座应用”,它相当于一个运行环境,用于加载和调试当前开发的应用。安装过程中,HBuilderX 控制台会显示进度信息。安装完成后,手机上会自动打开该基座应用,并加载当前项目。 5. **实时调试与修改** 在 HBuilderX 中启用“边改边看”模式,可以实现实时预览页面效果。每当修改了 HTML、CSS 或 JavaScript 文件并保存后,HBuilderX 会自动将更改同步到手机上,无需重新打包和安装应用。这对于调试页面布局、交互逻辑等非常高效。 6. **调试工具的使用** 在 HBuilderX 中,可以通过“调试”功能查看手机端的控制台日志、网络请求、性能分析等信息。这些工具对于排查错误和优化应用性能非常有帮助。 7. **注意事项** - 如果应用需要调用原生功能(如摄像头、GPS、本地存储等),需要配置相应的权限,并确保基座应用支持这些功能。 - 真机运行时,确保手机和电脑处于同一局域网中,以保证通信稳定。 ### 示例代码:MUI 框架的基本页面结构 以下是一个使用 MUI 框架构建的基本页面结构示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>MUI 示例页面</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <link href="css/mui.min.css" rel="stylesheet"> <script src="js/mui.min.js"></script> <script> mui.init(); </script> </head> <body> <header class="mui-bar mui-bar-nav"> <h1 class="mui-title">MUI 示例</h1> </header> <div class="mui-content"> <p>这是一个使用 MUI 框架构建的页面。</p> </div> </body> </html> ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值