第1章 使HTML5创建移动应用程序.docx
- 文档编号:12367553
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:14
- 大小:71.02KB
第1章 使HTML5创建移动应用程序.docx
《第1章 使HTML5创建移动应用程序.docx》由会员分享,可在线阅读,更多相关《第1章 使HTML5创建移动应用程序.docx(14页珍藏版)》请在冰点文库上搜索。
第1章使HTML5创建移动应用程序
第1章使用HTML5创建移动应用程序
这个世界已经是移动互联的时代了,每天有成千上万台智能手机被激活。
有越来越多的手机应用提供给消费者,而企业软件产品则是发展缓慢而稳定地运行着。
越来越多的企业深信为了企业的可持续发展,涉及移动开发已是无可避免的了。
假设你是一名网页开发人员,那么也许某一天早晨你的主管会告诉你:
“好好准备一下,我们要开始关注移动平台了!
”;又或者是想开发一个手机应用部署到一个或若干个移动应用市场上。
要选择一个合适的开发平台,必须考虑很多因素,如编程技术水平、原生系统功能、安全性、脱机功能、支持多种平台等。
本章将介绍各种不同的移动开发方式,并介绍为何HTML5能够成为比较受欢迎的多平台移动开发工具。
然后介绍KendoUIMobile框架及移动应用程序开发原理。
本章内容涵盖如下几部分:
❑原生应用、混合应用以及移动网站的比较
❑HTML5与CSS3
❑KendoUI框架——简化了多浏览器应用的开发
❑KendoUIMobile框架
❑HTML5移动Web应用程序设计指南
1.1原生应用、混合应用以及移动网站的比较
读者也许已经清楚了有如下3种方式可用于开发兼容性良好的移动应用,分别是原生、混合以及移动网站。
原生应用由特定平台的编程语言所编写,如IOS平台是ObjectiveC,Android平台是Java等。
原生程序运行速度较快,拥有最高的权限来调用系统的各种API和功能,能提供较好的用户体验。
由于原生应用只为特定的平台量身定制,所以要运行于另一个平台,整个应用系统需要重写一遍才能满足需求。
这会导致代码冗余、加大维护难度、增加开发预算并且需要组建额外的开发团队来(一个团队专攻一种平台)实现同一套业务逻辑。
通常情况下,游戏程序和性能要求高的程序应由原生程序开发。
混合应用则使用纯Web技术(如CSS、HTML和JavaScript)编写,运行于一个使用设备自带的浏览器引擎的容器里。
混合应用程序通常使用诸如PhoneGap等第三方工具来打包,这将有助于应用程序访问特定于设备的API和硬件特性。
诸如IOS、Android和BlackBerry等平台所使用的WebKit渲染引擎将会被显示在设备原生平台的一个Web视图控件当中,该引擎用于显示基于Web的脚本或代码。
由于混合应用是根据本地应用shell所创建的,因而也可以利用应用商店进行分发。
Telerik的Icenium是一个基于云计算的集成了打包、测试、部署混合应用程序等功能的一体化开发平台。
PhoneGap也是一个常用的开发平台,可将Web应用程序打包并部署到多个移动平台中去。
移动网站运行于移动设备上的浏览器当中,通过一个URL来进行访问,可以使用诸如ASP.NET和PHP等服务器端技术开发,也可以部署和更新而不需要通过任何应用商店的审批。
如果移动网站是使用纯Web技术(HTML、CSS、JavaScript)或使用基于其他如jQueryUI、KendoUI及jQueryMobile框架等Web框架开发的情况下,该网站不用执行过多操作就可以打包成为混合程序。
移动网站最主要的缺点是:
设备必须配备浏览引擎才可以访问,这限制了移动网站只适用于基于内容的应用程序。
没有一个解决方案可适用于所有的情况。
选择哪种方法取决于很多的因素,如开发技能、预算、时间表及更新频率。
KendoUIMobile框架是一个用来开发混合程序和移动网站的理想开发平台。
在本书后续的各章节当中,一开始将介绍如何基于KendoUIMobile框架来创建一个MovieTickets(电影票务管理)的应用程序,然后在本书末尾使用PhoneGap将程序打包成可用于Android和iOS平台上的应用程序。
1.2HTML5与CSS3
HTML5、jQuery以及CSS3是前沿Web应用程序开发技术的代名词。
这里所提到的Web内容当中包括了标准的网站或网站应用程序、移动网站或移动应用程序,以及混合应用程序。
尽管本书是介绍KendoUIMobile框架的,但了解移动框架所隐藏的实现技术,即HTML5、jQuery以及CSS3技术也是非常有必要的。
在深入探讨KendoUIMobile框架之前,先来简单了解HTML5和CSS3的相关知识。
这里期望读者已经掌握了jQuery的基本用法,因为本书不会对jQuery的基本知识进行讲解。
1.2.1HTML5——史蒂夫·乔布斯让我一举成名
当史蒂夫·乔布斯宣布iOS设备不支持Flash,而HTML5将是未来发展方向之后,HTML5便一举成名。
HTML5有创建功能强大的图形、丰富的排版、生动的动画以及不需要依赖第三方浏览器插件页面的过渡方式。
HTML5是一种标记语言的规范,由大量的功能特性、技术和API组成,允许开发人员创建丰富的内容和交互体验。
HTML5目前仍在推广阶段,但很多浏览器已经实现其规范当中的很大一部分。
这也给开发人员带来了许多挑战,因为他们在项目开始之前就必须明确不同的浏览器分别支持HTML5的哪些特性。
1.2.2HTML5的主要功能特性
尽管HTML5的规范还不够完整,但是各主流的浏览器已经支持大部分HTML5的新特性。
下面是当前HTML5的一些主要特性:
❑支持离线浏览Web应用的应用程序缓存
❑地理定位(Geolocation)
❑服务器发送事件
❑音频及视频
❑IndexedDB
❑WebSocketAPI
❑画布API
❑MathML
❑Web存储
❑跨文档消息传递
❑微数据(Microdata)
❑Web处理线程(WebWorkers,Web平台上的多线程处理功能)
❑可拖放
❑可伸缩矢量图形(SVG)
❑XMLHttpRequestLevel2
技巧:
是Google旗下一个非常好的HTML5参考网站,提供了丰富的教程、文章和其他学习资源。
1.2.3HTML5规范相关的组织
目前有3个不同的组织在推动着HTML5标准的制定,分别是W3C(WorldWideWebConsortium,万维网联盟)、WHATWG(WebHypertextApplicationTechnologyWorkingGroup,Web超文本应用技术工作组)以及IETF(InternetEngineeringTaskForce,互联网工程任务组)。
因此目前分别由W3C以及WHATWG来维护两套不同版本的HTML5规范,这些内容可参见http:
//www.w3.org/TR/html5和http:
//whatwg.org/html。
IETF负责制定HTTP等互联网协议以及HTML5下WebSocketAPI等相关的处理协议。
两套HTML5标准的不同并不值得关注,因为WHATWG标准被认为是一个“living”标准(这套标准将会不断地进行更新和变化,不过版本将不再进行更新)。
另一面,W3C则计划建立一个明确的标准,这套标准被WHATWG视为是其“living”标准的“快照”。
WHATWG专注于HTML的规范化描述及相关技术(即不断地修正标准中的错误、添加新的功能、追踪反馈)。
而W3C则专注于制定一个明确版本的HTML5标准。
1.2.4HTML5页面样例
下面编写一个HTML5页面样例,其页面代码如下所示:
DOCTYPEHTML>
SampleHTML5Structure
Link1 Link2
MainSection
ThisisasampleHTML5Page
Article1goeshere
Article2goeshere
Footergoeshere
提示:
下载本书样例代码
用户可以在Packt网站http:
//www.PacktP下载以用户本人账号所购买的书籍中的实例代码。
如果是在别处购买了本书,可以访问http:
//www.PacktPsupport进行注册,之后代码文件将会直接发送至注册邮箱中。
1.DOCTYPE声明及字符编码
HTML5的DOCTYPE声明非常简单:
DOCTYPEhtml>。
在每个HTML5页面的最顶部需要添加这一行代码。
这种新型的DOCTYPE声明十分简洁;相比之下,HTML4版本当中的声明则显得冗长并难以记住,HTML4的声明如下所示:
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN"
"http:
//www.w3.org/TR/html4/strict.dtd">
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Frameset//EN"
"http:
//www.w3.org/TR/html4/frameset.dtd">
所有最新版本的浏览器根据DOCTYPE声明将显示内容切换成相应的标准模式。
与DOCTYPE声明类似,HTML5下字符集的声明也相应地进行了简化。
如下面的代码所示:
Meta元素当中的metacharset属性被用于替代HTML4中的相应的指令。
HTML4中典型的字符编码声明如下:
2.HTML5当中的一些新标签
在前面的代码当中已经看到一些新的HTML5的语义化标签。
这些语义化的标签清晰地向开发人员和浏览器阐述了其意义或目的。
HTML4下的
开发人员只能通过添加给ID属性指定一个特定意义的值对其进行强调,如sectionHeader、footer和navLinks等,如下所示:
HTML5从数十亿的网页中,将开发人员经常使用的ID和CSS类名提取成一个HTML5规范子集,增加了很多语义化的标签,如
此举意义深远,搜索引擎和管理工具抓取网页将更加容易,开发人员则可以使用更加简洁的HTML代码。
下面分别来看看在HTML5的示例页面内所使用到的一些新语义化标签。
(1)
一般包含该区段的标题(h1~h6元素或hgroup元素),但这不是硬性要求。
(2)
一般网站中各个页面的页脚会包含一些链接,此时会较多地选择使用
下面是一些可能会考虑使用
❑BreadCrumbs导航栏
❑内容列表(目录)
❑侧边导航栏
(3)
❑章节
❑选项卡对话框中的多个选项卡页面
❑文章中已编号的区段
实际应用中,站点的主页应该分为几个部分,例如,介绍、新闻项和联系人信息等。
这是内容的一部分,所以应该将其以记录的形式存储在数据库中。
当有内容要显示在文档大纲中明确显示时,使用
(4)
一篇文章的内容应为独立的内容,可以在其周围内容被删除时还能够发布或重用。
(5)
但不需要在节的末尾添加页脚,即便这是其通常用法。
技巧:
1.2.5CSS3
CSS3是CSS的最新版本,与CSS2(这是一个单一且大规模的CSS规范)不同的是,CSS3会被划分成多个模块,单独制定规范并独立运作。
早在1998年CSS2规范完成后,就已经开始编制CSS3规范,并且现在一直在更新。
CSS3通过为页面添加动画元素、应用渐变、阴影、多背景、不透明度等不同的效果使其添加了一些“生命力”,而这些元素并不像以前版本的CSS那样需要使用图像或客户端代码。
另外,CSS3会在客户端缓存CSS文件以提高应用程序的性能,如果浏览器支持硬件加速技术,那么还可以用于显示动画。
目前,CSS工作组(CSSWorkingGroup)为CSS3提供的模块已超过50个,例如MediaQueries(媒体查询)、Namespaces(命名空间)、Color(颜色)、Animation(动画)、Background(背景)、Border(边框)、Selector(选择器)和2D/3DTransformation(2D/3D转换)等。
下面的简单示例,可以说明如何使用CSS3快速对一个HTML元素应用圆角边框、转换和阴影。
首先,定义一个简单的div元素,并应用一些样式:
DOCTYPEHTML>
div#myDiv
{
width:
200px;
height:
100px;
background-color:
#A3D1FF;
border:
1pxsolidblack;
margin:
10px;
padding:
5px;
}
75px"> IamanHTMLdiv
该HTML代码的显示效果如图1-1所示。
接着,将其顺时针旋转40°,并给边框加上圆角、添加阴影。
在CSS3中,用几行代码就可以满足这些要求。
此时,为该HTML文档添加CSS3属性的CSS定义如下所示:
border-radius:
10px;
box-shadow:
8px8px1pxgray;
transform:
rotate(40deg);
-ms-transform:
rotate(40deg);/*IE9*/
-webkit-transform:
rotate(40deg);/*SafariandChrome*/
重新加载该HTML页面,可以看到该div块的显示已经有了一定的变化,如图1-2所示。
图1-1 图1-2
1.3轻松构建跨浏览器应用的KendoUI框架
在介绍了一些概述性内容之后,接下来要开始介绍一些实际的知识:
Telerik提供的KendoUI框架。
Telerik一直走在为开发人员提供快速应用程序开发(RAD)工具的前列,KendoUI框架就是Telerik新近提供的RAD工具之一,用于创建开发基于HTML5、jQuery以及CSS3的跨浏览器应用程序。
使用KendoUI唯一的外部依赖是jQuery。
使用KendoUI开发应用程序非常简单,其设置只需要在HTML页面中引用jQuery、KendoJavaScript以及CSS文件即可。
技巧:
Kendo的含义是“剑道”,是一种传统的日本剑术。
KendoUI框架大致可以按照如下分类进行划分:
❑KendoUI微件
❑KendoUI框架元素
Kendo微件与其他HTML5/jQuery框架一样,使用HTML5、CSS3和jQuery来创建功能强大的Web应用程序,而不需要使用多个第三方框架和插件。
应用程序一旦开发出来,KendoUI微件就是能够真正“看到”的UI元素,例如按钮、下拉列表和树状视图等。
而框架元素则是一些“看不到”的实体,例如数据源、模板以及MVVM等,是用于与微件进行数据集成的。
打个比方来说,如果将使用KendoUI创建一个应用程序看作是建一栋高楼,那么UI微件就是砖块,框架元素就是水泥,通过水泥来使砖块粘合在一起。
1.3.1KendoUI微件
KendoUI微件分为以下3类,如图1-3所示。
❑KendoUIWeb:
用于可触摸的桌面应用程序开发。
❑KendoUIDataViz:
用于桌面以及移动应用程序的数据可视化。
❑KendoUIMobile:
用于移动应用程序开发。
图1-3
1.3.2KendoUI体系架构
虽然KendoUIWeb和DataViz超出了本书的内容范围,但也不妨碍了解一下这两方面内容,因为这3个微件组是可以无缝结合操作的,并且在进行一个大项目开发时,可能需要用到不止一个微件组。
1.KendoUIWeb
KendoUIWeb微件用于针对键盘/鼠标输入信息以及基于触摸的传统跨浏览器Web应用程序。
到目前为止,在KendoUIWeb微件集当中包含22个微件。
所有KendoUIWeb微件都提供对触摸屏设备的完全支持,例如iPad、iPhone及Android等,因此可以通过各种设备访问Web应用程序。
即使KendoUIWeb框架使用的是较新的基于HTML5和CSS3的微件,但它可以通过降级支持IE7和IE8等旧版浏览器。
技巧:
有关KendoUIWeb的更多信息请访问
2.KendoUIDataViz
KendoUIDataViz微件有助于使用HTML5创建尖端的、能够触摸感知的图标和仪表板。
这应该要感谢内置的硬件加速功能,使得DataViz微件能够利用较少的CPU资源,为动画和渲染提供很高的性能。
DataViz图片以SVG渲染显示于较新的客户端上,对于较老的浏览器,则使用VML渲染。
DataViz支持表1-1和仪表微件。
表1-1
图表类型
仪表类型
Area
Radial
Bar
Linear
Bubble
Line
Donut
Pie
Scatter
技巧:
就像Web微件一样,DataViz通过混合有限的HTML5支持(如果有)和降级来支持类似IE7和IE8等较旧的浏览器。
DataViz完全支持最新的移动浏览器,因此可以应用于桌面Web应用程序以及移动应用程序上。
有关KendoUIDataViz的更多信息,请访问
3.KendoUIMobile
KendoUIMobile是KendoUI微件中的第三组微件,用于创建基于HTML5的移动网站以及混合移动应用程序。
KendoUIMobile突出了自适应显示技术,有助于改善应用程序的界面和外观,适应所显示的平台而无需进行配置或编写额外的代码。
使用KendoUIMobile创建的应用程序就像是在Android设备上运行Android系统、在iOS设备上运行iOS系统一样自然。
在编写本书时,KendoUIMobile目前已经能够支持iOS、Android、BlackBerry、Windows8等平台。
那么读者可能会提出这样的一个问题:
“如果我想App在所有设备上显示的界面外观都一样,这将如何处理”?
不久前,Kendo发布了一个通用移动主题(UniversalMobileTheme),允许开发人员在不同平台上开发应用一致的程序界面外观。
如果还没使用这个主题,那么在实例化移动应用程序时只需针对特定平台实现一个单独的配置即可。
在强制以某个平台的界面外观显示后,修改平台相应的CSS文件就能够跨平台显示相同的界面外观。
技巧:
Kendo还提供了移动主题生成器(MobileThemeBuilder)用以自定义移动微件的样式,更多信息请访问
1.3.3服务器封装器
如果读者使用ASP.NETMVC、JSP或PHP编写服务器端程序,那么下面的内容则是一个不错的消息:
KendoUI针对ASP.NETMVC、PHP以及JSP提供了服务器封装器。
该封装器可以自动生成必要的HTML和JavaScript代码以配置、呈现以及初始化KendoUI微件(包含Web和Mobile)和图表(DataViz)。
这些服务器封装器提供了KendoUIJavaScript脚本,同时还提供对KendoUI客户端API的完全访问权限,以便客户端可以在显示Web页面时操作UI的显示效果。
技巧:
更多有关服务器封装器的详细文档,请访问aspx。
1.4HTML5移动Web应用程序设计指南
开发移动设备的应用程序与开发台式机和笔记本电脑上的网站不完全一样。
因为大多移动设备的屏幕尺寸和处理能力都不尽相同,移动设备的网络接入带宽也不相同,有可能当前使用Wi-Fi网络联网,下个时间点就可能使用速度很慢的2G网络。
所有这些因素使得移动应用程序开发不同于传统的Web应用程序开发。
以下内容能够对开发移动Web应用程序的开发人员有一定帮助。
❑使用CSS3动画而不使用jQuery:
只要有可能,就使用CSS3动画,它们由浏览器本地处理,因此可以使用硬件资源,从而提高性能。
❑使用CSS3媒体查询的响应式设计:
目前的移动设备屏幕尺寸不同,最基本的要求就是在设备请求应用程序时,能够在不同的屏幕上较好地显示移动Web应用程序。
使用CSS3媒体查询的响应式设计有助于在不同的设备上基于相同的代码提供优化的显示效果。
❑使用CSS3渐变而不使用图像:
使用CSS3可以在Web页面中提供渐变效果,而不需要专门的裁切图像。
这有助于在低带宽的情况下显示图像,并为页面设计提供更大的灵活性。
❑选择SPA(单页面应用程序,SinglePageApplication):
SPA(例如Gmail)为用户提供了更快速响应式导航的体验。
其特点是重新显示界面的任何部分时,不需要请求服务器并等待返回结果。
在创建移动应用程序时,在不复杂化开发过程时应选择使用SPA。
对于构建单页面应用程序来说,KendoUIMobile是一个很优秀的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第1章 使HTML5创建移动应用程序 HTML5 创建 移动 应用程序