问题分析:
html5网站主要由html+css+js的形式组成,需要使用浏览器进行展现。
Android需要使用Java语言来开发,对于前端工程师来说,无疑是增加了很大的难度。
随后出现了很多打包工具,来协助我们将网页元素打包成手机app,将我们编写的html转化为Java语言。
解决方案:
推荐一款我们常用的打包工具:HBuilder。
该工具不仅提供了Android应用打包,还可以直接连接手机进行调试,配合HTML5+可以实现很多Android原生的功能。比如:扫码二维码,拍照,摇一摇等等。
具体 *** 作步骤:
1、真机调试
进入软件后,第一步点击“运行”,第二步点击“手机运行”,第三步选择已连接的手机,示例中我使用的是安卓模拟机进行连接的。市面上常用的几款安卓模拟机器都可以直接连接上。
按如上几个步骤 *** 作后,会自动执行打包并将应用安装在链接的手机(模拟器)中,可以 *** 作手机(模拟机)进行测试。
2、打包生成Android的安装格式apk文件
① 打开软件,选择发行->发行为原生安装包,随即打开下图窗口。
② 勾选Android复选框,如果使用Dcloud公用证书的话,可以直接进行打包,手机可以安装使用。如果需要上传发行到第三方应用平台的话,需要使用自有证书,自用证书可以使用JRE自带的创建和管理数字证书的工具Keytool来生成自有证书,生成过程是免费的。
勾选Android选项后,在下方表单中填写Android包名,为保证唯一性,可以使用自有网站域名的反写方式加上应用名称。如果使用自有证书的话,还需要填写证书别名,密钥密码,证书文件。
填写完毕后,点击打包,即可生成apk文件。
其他注意事项:
1、在开发过程中,不需要进行打包,应更多的使用真机调试,可以节约很多时间。
2、开发完毕后,尽可能在各种版本的android机器上做一下测试,因为一些网页的样式在不同的android版本中呈现的效果略有不同。
3、重新编辑一下html5网站代码,将一些网页功能转换为手机功能,比如网页元素的<a>标签跳转,就应该使用Webview来完成。可以解决页面切换白屏的问题,还可以提高网站在手机中的运行效率。
H5开发安卓界面需要注意以下三点:(上)包括Android设备多分辨率的问题,Android中构建HTML5应用程序基础
(中)包括Android与JS之间的互动,Android处理JS的警告对话框等,Android中的调试
(下)包括本地储存在Android中的应用,地理位置的应用,离线应用的构建
进入正题
● Android设备多分辨率的问题
Android浏览器默认预览模式浏览 会缩小页面 WebView中则会以原始大小显示
Android浏览器和WebView默认为mdpi。hdpi相当于mdpi的1.5倍 ldpi相当于0.75倍
三种解决方式:1 viewport属性 2 CSS控制 3 JS控制
1 viewport属性放在HTML的<meta>中
html代码:
<span style="font-size: x-small"> <head>
<title>Exmaple</title>
<meta name=”viewport” content=”width=device-width,user-scalable=no”/>
</head></span>
meta中viewport的属性如下:
<span style="font-size: x-small"> <meta name="viewport"
content="
height = [pixel_value | device-height] ,
width = [pixel_value | device-width ] ,
initial-scale = float_value ,
minimum-scale = float_value ,
maximum-scale = float_value ,
user-scalable = [yes | no] ,
target-densitydpi = [dpi_value | device-dpi |
high-dpi | medium-dpi | low-dpi]
"
/>
</span>
2 CSS控制设备密度
为每种密度创建独立的样式表(注意其中的webkit-device-pixel-ratio 3个数值对应3种分辨率)
html代码:
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.5)" href="hdpi.css" />
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.0)" href="mdpi.css" />
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 0.75)" href="ldpi.css" />
3 JS控制
Android浏览器和WebView支持查询当前设别密度的DOM特性
window.devicePixelRatio 同样值有3个(0.75,1,1.5对应3种分辨率)
JS中查询设备密度的方法
js代码:
if (window.devicePixelRatio == 1.5) {
alert("This is a high-density screen")
} else if (window.devicePixelRation == 0.75) {
alert("This is a low-density screen")
}
Android中构建HTML5应用
使用WebView控件 与其他控件的使用方法相同 在layout中使用一个<WebView>标签
WebView不包括导航栏,地址栏等完整浏览器功能,只用于显示一个网页。
你说的这个主要制作思路是使用响应式设计,结合html5和css的一些特性制作(主要是css3的媒体检查,根据不同视口载入不同样式),但制作出来的东西能否被称为手机app,这个还要看功能,如果你制作出来的东西能完成某些功能或者某种任务,这能被叫做webapp,如果不能就不要叫什么app,最多算是一种手机展示方式。至于安卓和ios版本的问题,考虑主要是图片分辨率的问题,区别不大。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)