在安卓环境中,通常情况下需要html页面解析完成后才会让5+ API生效,安卓的执行的顺序为:
1. 加载html页面,loading
2. 解析html页面(解析title节点、下载script/link等节点引用的资源,如js/css文件)
3. 触发DOMContentLoaded事件
4. 触发plusready事件
此文对执行顺序有详细描述:http://ask.dcloud.net.cn/article/571
我们总是在不停追求性能优化,生效时间越早,我们可以把app的体验做的更好。
在HBuilder7.5版本之后安卓版支持提前注入5+ API,可以在plusready事件触发之前调用5+ API,操作方法是在页面中添加以下节点:
<script src="html5plus://ready"></script>,示例如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<title>HTML5+ API</title>
<script src="html5plus://ready"></script>
<script type="text/javascript" charset="utf-8">
// 这里可以调用5+ API了,为了更好的兼容性,应该使用以下代码进行判断
if(window.plus){
// 在这里调用5+ API
}else{// 兼容老版本的plusready事件
document.addEventListener('plusready',function () {
// 在这里调用5+ API
},false)
}
</script>
</head>
<body>
Hello HTML5 plus
1、直接在mui.min.css里修改,这样修改的是整个样式。不利于升级和维护;2、新建样式文件style.css,在mui.min.css下面再引入一个样式文件。把要修改的样式写在里面(推荐)
3、你可以把样式直接写在页面里,
走访了好几个移动框架,来回切换了几次,发现都不是很适合我使用,要么是组件不够用,要么是组件无法二次封装。我在自己的项目中大多是需要使用框架之样式,所以思来想去还是用比较熟悉的mui移动框架( 官方网址 )。但是mui是没法使用npm进行安装的(一大遗憾),思来想去于是将mui框架所需的js,css文件放在static目录下:在index.html中以静态资源的方式进行引用。
当然想要在组件中直接使用mui这个变量,需要在build/webpack.base.conf.js文件中进行配置
如需引用mui框架的样式只需要引入mui中的class样式
以上是我在项目中遇到问题的一些解决方案,谢谢。