欢迎光临
免费的PDF电子书下载网站

HTML5混合App开发 PDF下载

编辑推荐

在移动互联网竞争环境下, HTML5技术一直备受关注,应用日益广泛,传智播客开发了HTML5开发系列课程。本书基于该系列课程的扎实基础,是一本HTML5混合App开发的应用型教材,适合有HTML5移动Web开发和JavaScript编程基础的读者使用。书中介绍的ionic框架在混合App开发领域技术完善,适合新手入门。书中大部分知识点都配有案例练习和代码分析,让读者即学即用。本书配备了2个阶段项目和1个综合项目,有效提升读者实操技能。内容讲解通俗易懂,实例丰富,适合作为高等院校计算机相关专业程序设计类课程或者Web开发的专用教材,也可以作为广大IT从业者的参考用书。 ;

内容简介

在竞争激烈的移动互联网环境下,HTML5技术一直备受关注。HTML5混合App开发与原生App开发模式之间也争议不断。相对于原生App来说,HTML5混合App开发的成本更低、周期更短,而且随着移动设备的硬件支持越来越好,HTML5混合App的性能也越来越好,很多企业都觉得使用HTML5混合App开发更合适。 本书围绕HTML5混合App开发进行详细讲解,全书共12章。第1章对混合App开发及涉及的技术作概括介绍,包括AngularJS、Cordova和ionic的简介,以及这几种技术在混合App开发中所发挥的作用。第2~6章介绍AngularJS的基础知识,为ionic框架的学习打下基础,主要包括AngularJS的模块、控制器、作用域、基本原理、表达式、指令、服务等。第7~11章对ionic框架的使用进行详细的介绍,主要包括ionic开发环境的安装与配置、应用打包、ionic CSS、ionic JavaScript等。第12章是一个综合项目,目的是对前面所学的知识进行巩固。 本书附有配套资源,如源代码、教学视频、习题、教学课件等;而且为了帮助读者更好地学习还提供了在线答疑,希望得到更多读者的关注。 本书既可作为高等院校本、专科计算机相关专业程序设计课程的教材,也可作为广大计算机编程爱好者的参考用书。

作者简介

暂无

HTML5混合App开发 PDF下载

目录

目录

第1章混合App开发简介1

【教学导航】1

1.1什么是混合App开发1

1.1.1移动App开发的三种模式1

1.1.2混合App开发应用场景3

1.2混合App开发应用技术4

1.2.1MVC与MVVM架构模式4

1.2.2AngularJS简介6

1.2.3Cordova简介8

1.2.4ionic简介9

1.3本章小结10

第2章初识AngularJS11

【教学导航】11

2.1快速体验AngularJS11

2.1.1AngularJS1与AngularJS2

的区别11

2.1.2AngularJS的环境配置12

2.1.3第一个AngularJS程序13

2.2AngularJS的基本概念16

2.2.1AngularJS的模块与

控制器16

2.2.2AngularJS作用域20

2.2.3AngularJS表达式24

2.2.4AngularJS的指令27

2.2.5自动化双向绑定28

2.3本章小结29

第3章AngularJS的指令30

【教学导航】30目录HTML5混合App开发3.1指令的分类30

3.2AngularJS常用的内置指令31

3.2.1程序控制和数据绑定类指令31

3.2.2状态设置类指令33

3.2.3事件绑定类指令39

3.2.4访问流程类指令42

3.2.5加载处理类指令49

3.3AngularJS的自定义指令50

3.3.1directive()函数51

3.3.2自定义指令的约束53

3.3.3指令的作用域54

3.4本章小结58

第4章AngularJS相关原理59

【教学导航】59

4.1AngularJS与MVVM59

4.2AngularJS的启动流程60

4.3脏检查机制62

4.3.1脏检查机制的实现原理62

4.3.2$watch函数66

4.3.3$apply函数67

4.4AngularJS与依赖注入68

4.4.1什么是依赖注入69

4.4.2JavaScript如何实现依赖注入70

4.4.3AngularJS中的依赖注入72

4.5本章小结74

第5章AngularJS的服务75

【教学导航】75

5.1AngularJS创建服务75

5.1.1使用provider()函数创建服务76

5.1.2使用factory()函数创建服务79

5.1.3使用service()函数创建服务80

5.1.4使用value()和constant()函数创建服务83

5.2AngularJS内置服务85

5.2.1访问JavaScript全局对象85

5.2.2AngularJS路由91

5.2.3AngularJS中的Ajax访问95

5.3本章小结98

第6章AngularJS框架项目实战99

6.1项目实战——邀请名单99

6.1.1项目展示99

6.1.2项目分析101

6.1.3项目目录和文件结构103

6.1.4封装对象模型104

6.1.5编写业务逻辑106

6.1.6编写静态页面107

6.1.7添加数据绑定110

6.2项目实战——电影列表111

6.2.1项目展示111

6.2.2项目分析113

6.2.3项目目录和文件结构115

6.2.4接口API测试116

6.2.5搭建项目并封装自定义的JSONP服务117

6.2.6封装和测试数据对象模型119

6.2.7编写电影列表页面的控制器和模板122

6.2.8编写电影详情页面的控制器和模板125

6.2.9完成路由功能并整合项目126

6.3本章小结128

第7章ionic开发环境的安装与配置129

【教学导航】129

7.1安装Android SDK129

7.1.1JDK的下载和安装129

7.1.2Android SDK的下载和安装135

7.2安装Node.js142

7.2.1Node.js和NPM简介142

7.2.2Node.js的下载和安装142

7.3安装Git146

7.4安装ionic和Cordova150

7.4.1ionic1与ionic2的区别150

7.4.2ionic和Cordova的安装150

7.5本章小结151

第8章快速体验ionic项目152

【教学导航】152

8.1快速创建ionic项目152

8.1.1ionic的3种项目模板152

8.1.2下载项目模板153

8.1.3为项目添加Android平台支持155

8.1.4打包Android APK157

8.2ionic项目目录和文件结构159

8.2.1常用工作目录和重要文件159

8.2.2其他工作目录和文件163

8.3定制项目图标和启动页165

8.4本章小结168

第9章ionic CSS169

【教学导航】169

9.1基本布局类样式169

9.1.1手机App常用布局方式169

9.1.2定高条块170

9.1.3内容区域175

9.2颜色和图标类样式177

9.2.1颜色177

9.2.2图标179

9.3界面组件类样式181

9.3.1按钮181

9.3.2列表185

9.3.3卡片191

9.3.4表单输入192

9.3.5选项卡200

9.4栅格系统类样式204

9.4.1基本行与列204

9.4.2指定列宽205

9.4.3指定列偏移206

9.4.4列表纵向对齐207

9.4.5响应式栅格209

9.5本章小结210

第10章ionic JavaScript(上)212

【教学导航】212

10.1ionic JavaScript概述212

10.1.1ionic指令式组件212

10.1.2ionic服务式组件213

10.2基本布局组件214

10.2.1固定标题栏214

10.2.2内容区域216

10.2.3滚动条218

10.2.4滚动刷新220

10.2.5下拉刷新223

10.2.6手动控制滚动视图225

10.3ionic路由229

10.3.1路由状态机229

10.3.2模板视图与视图容器230

10.3.3路由的实现230

10.4界面组件233

10.4.1顶部导航栏234

10.4.2列表237

10.4.3表单输入241

10.4.4幻灯片243

10.4.5侧边栏菜单246

10.4.6选项卡251

10.5本章小结256

第11章ionic JavaScript(下)257

【教学导航】257

11.1动态组件257

11.1.1模态对话框257

11.1.2上拉菜单262

11.1.3弹出框265

11.1.4浮动框269

11.1.5背景幕273

11.1.6载入指示器275

11.2手势事件277

11.2.1常用的手势事件277

11.2.2手动注册与解除手势事件278

11.3IndexedDB279

11.3.1IndexedDB简介279

11.3.2Object Store280

11.3.3请求的生命周期281

11.3.4IndexedDB的基本使用282

11.4本章小结289

第12章项目实战——Mall App290

12.1项目简介290

12.1.1项目展示290

12.1.2项目目录和文件结构293

12.2任务1——项目结构搭建295

12.2.1任务描述295

12.2.2任务分析295

12.2.3代码实现296

12.3任务2——引导页298

12.3.1任务描述298

12.3.2任务分析299

12.3.3代码实现300

12.4任务3——导航标签307

12.4.1任务描述307

12.4.2任务分析307

12.4.3代码实现307

12.5任务4——商城首页310

12.5.1任务描述310

12.5.2任务分析310

12.5.3代码实现311

12.6任务5——商品分类323

12.6.1任务描述323

12.6.2任务分析324

12.6.3代码实现324

12.7任务6——商品列表335

12.7.1任务描述335

12.7.2任务分析 335

12.7.3代码实现336

12.8任务7——商品详情347

12.8.1任务描述347

12.8.2任务分析347

12.8.3代码实现349

12.9任务8——购物车364

12.9.1任务描述364

12.9.2任务分析365

12.9.3代码实现365

12.10任务9——个人中心379

12.10.1任务描述379

12.10.2任务分析379

12.10.3代码实现380

12.11本章小结388

前沿

前言

 ;

为什么要学习本书

HTML5混合App开发是指使用基于HTML5的前端框架(如ionic)来开发App的技术,已经成为继Android、iOS开发技术之后又一火爆的移动App开发技术。

HTML5混合App开发的具体实现方式是,把HTML5应用程序嵌入一个原生容器中。此种方式实现的App集原生应用程序和HTML5应用程序的优点于一体,相比原生App界面更加美观,而且开发时间短,成本较低;这让掌握HTML5混合App开发技术的工程师的薪资水涨船高,在移动互联网行业抢尽风头。

本书讲解的混合App开发是使用ionic框架实现的,该框架基于HTML5和AngularJS,所以在本书的前半部分讲解了AngularJS的内容作为学习ionic的基础。如果你对HTML5混合App开发感兴趣,那么本书正好是你需要的。

如何使用本书

本书适合有HTML5、CSS3和JavaScript基础,熟悉HTML5移动Web开发的读者使用。作为一门技术教程,最重要也最难的一件事情就是要将一些复杂的功能简单化,让读者能够轻松理解并快速掌握。

本书对每个知识点都进行了深入的分析,并针对每个知识点精心设计了相关案例,同时还提供了两个阶段项目和一个综合项目;让读者能够将这些知识点运用在实际工作中,真正做到了由浅入深、由易到难。

本书共12章,接下来分别对每章进行简单的介绍。

免费在线读


第3章AngularJS的指令在第2章的案例演示中,提到过指令的概念,也应用了ngapp、ngmodel和ngclick等指令,相信读者对指令并不陌生。在AngularJS中提供了很多内置指令供开发人员使用,同时也提供了自定义指令的方法,本章将针对AngularJS的常用内置指令以及如何自定义指令进行详细讲解。【教学导航】学习目标1. 熟悉常用的AngularJS内置指令2. 熟悉如何自定义指令3. 掌握ngrepeat指令的使用方法4. 了解自定义指令的约束5. 了解指令的作用域教学方式本章内容以理论讲解、案例演示为主重点知识1. 常用的AngularJS内置指令2. 如何自定义指令3. ngrepeat指令的使用方法关键词ngbind、ngstyle、ngclass、ngclick、ngchange、ngrepeat、ngcloak、directive ;3.1指令的分类在AngularJS中,根据使用场景和作用可以将指令分为两类: 装饰器型指令(Decorator)和组件型指令(Component)。装饰器型指令的作用是为DOM添加行为,使其具有某种能力,例如ngclick(单击事件)、nghide/ngshow(控制DOM元素的显示和隐藏)等。在AngularJS中,大多数内置指令属于装饰器型指令。装饰器型指令负责搜集页面数据的变化,然后利用AngularJS的“脏检查机制”来保持数据视图与作用域数据的同步,这对于双向绑定具有重要的意义。关于脏检查机制在本书的第4章中会详细讲解。组件型指令是一个小型的整体,其中包含业务所需要显示的视图和交互逻辑,例如弹出框、上拉菜单等。组件型指令具有高内聚和低耦合的特点,高内聚是指组件内部实现了它所应该包含的功能,低耦合是指它和外部组件之间尽量少地相互依赖。组件型指令不应该直接引用当前页面的DOM和数据,而是要有独立的作用范围。例如某个项目中需要实现登录、轮播图等功能,如果直接把代码添加到视图和控制器中,便不利于分工协作和长期维护。这时,更好的解决方案是定义两个组件型指令(loginPannel和sliderPannel)——loginPannel指令用于登录功能,sliderPannel指令用于轮播图功能。然后使用

的方式来使用组件型指令,将两个功能嵌入页面,这样做可以分离视图,达到代码的语义化和组件化的目的。开发人员可以通过AngularJS提供的自定义指令的方法来开发组件型指令。第3章AngularJS的指令HTML5混合App开发装饰器型指令和组件型指令在写法、作用、适用范围等方面都是有区别的,了解二者之间的区别有利于更好地运用AngularJS的指令。3.2AngularJS常用的内置指令AngularJS中所有的内置指令的前缀都为“ng”,从类型上可以大致分为: 程序控制类指令、数据绑定类指令、状态设置类指令、事件绑定类指令、访问流程类指令和加载处理类指令等。本节将为读者详细介绍AngularJS常用的内置指令。3.2.1程序控制和数据绑定类指令AngularJS中常用的程序控制类指令如表31所示。表31程序控制类指令指令描述ngapp用于初始化一个AngularJS应用程序,将绑定ngapp的元素声明为$rootScope的起点ngcontroller用于为应用添加控制器,在控制器中可以编写代码,创建函数和属性,并使用$scope对象来访问它们nginit用于在HTML模板中定义初始化值,例如初始化一个字符串

AngularJS中常用的数据绑定类指令如表32所示。表32数据绑定类指令指令描述ngmodel用于将作用域范围内的数据绑定到表单控件ngbind使用给定的变量或表达式的值来替换 HTML 元素的内容,所有 HTML元素都支持ngbind指令ngapp、ngcontroller和ngmodel指令在本书第2章中已经演示过用法,这里不做单独演示。ngbind指令用于内容绑定,语法如下。在上述语法中,element是指HTML元素的名称,expression是指要执行的变量或表达式。ngbing指令的用法与插值语法“{{}}”有些相似,接下来通过一个案例来演示ngbind指令的具体用法,代码见demo31.html。demo31.html1234
5
ng-bind678

9

10

使用插值语法取出data的效果

11{{data}}12

13

使用ng-bind取出data的效果

1415

16

17
18
<script>19//创建一个AngularJS模块20var app=angular.module(app, []);21app.controller(MainController, function ($scope) {22//$scope 是AngularJS的控制器附带的“数据仓库”23$scope.data= his is data;24});252627在上述代码中,第23行定义了属性data,值为this is data;第11行和第14行分别使用插值语法和ngbind指令获取data值。打开Chrome浏览器,访问demo31.html,页面效果如图31所示。图31demo31.html页面效果在图31中可以看到,使用两种方法取值显示的效果是一样的。3.2.2状态设置类指令AngularJS中的状态设置类指令用于改变HTML元素的显示状态,包括为元素绑定样式、设置元素只读和禁用、设置显示和隐藏等。常用的状态设置类指令如表33所示。表33状态设置类指令指令描述ngstyle用于为HTML元素添加style属性ngclass用于给HTML元素动态绑定一个或多个CSS类ngreadonly用于设置表单域(input或textarea)的readonly(只读)属性ngdisabled用于设置表单输入字段(input、select或 textarea)的disabled属性nghide用于设置隐藏HTML元素ngshow用于设置显示HTML元素1. ngstylengstyle指令用于样式的绑定,语法如下。在上述语法中,expression表达式返回由CSS属性和值组成的对象,即keyvalue形式的对象。为了让读者有更好的理解,接下来通过一个案例来演示ngstyle指令的具体用法,代码见demo32.html。demo32.html1234
5
ng-style678

9

10

11 每天都开心12

13

14

15
16
<script>17//创建一个AngularJS模块18var app=angular.module(app, []);19app.controller(mainController, function ($scope) {20//在作用域内定义样式属性myStyle21$scope.myStyle={22 "background-color": "yellow",23 "width":"100px",24 "282930在上述代码中,第21~26行在作用域中定义了样式对象myStyle。在myStyle对象中可以使用keyvalue形式来定义CSS样图32demo32.html页面效果式,每个keyvalue的key可以去掉双引号,但是去掉双引号后key中包含的“”符号会报语法错误。因此,可以将key改写成驼峰式,例如将backgroundcolor改写成backgroundColor。第10行使用ngstyle指令绑定myStyle对象,并且使用div元素的style属性设置了div元素的高度。需要注意的是,ngstyle属性与HTML元素的style属性可以同时使用。打开Chrome浏览器,访问demo32.html,页面效果如图32所示。2. ngclassngclass指令用于绑定动态CSS类,语法如下。在上述语法中,ngclass指令的值可以是字符串、对象或数组。如果是字符串,多个类名使用空格分隔;如果是对象,需要使用keyvalue形式,key为要添加的类名,value是一个布尔类型的值(只有在value值为true时,该类才会被添加);如果是数组,数组的元素可以是字符串或对象。接下来通过一个案例来演示ngclass指令的具体用法,代码见demo33.html。demo33.html1234
5
ng-class6

202122

23

2425

26要努力向上27

28

29

30
31
<script>32//创建一个AngularJS模块33var app=angular.module(app, []);34app.controller(mainController, function ($scope) {35//创建classOptions对象,对已经有的CSS样式设置是否开启36$scope.classOptions={37"myColor":true,38"myDiv":true,39"myBorder":true40}41});424344在上述代码中,第8~18行定义了三组样式(.myColor、.myDiv和.myBorder);第36~40行定义了classOptions对象,在该对象上设置是否启用样式(true为启用,flase为禁用);第25行使用ngclass指令绑定classOptions对象,与ngstyle类似,这里的key值也可以去掉引号,但是去掉引号后不能包括“”,否则会出现语法错误。打开Chrome浏览器,访问demo33.html,页面效果如图33所示。修改demo33.html中的第39行,将myBorder设置为false,那么div元素将会被去掉边框,此时的页面效果如图34所示。图33demo33.html页面效果图34去掉边框的页面效果

3. ngshow和nghide在JavaScript中,通过设置HTML元素的display值来控制元素的显示和隐藏;AngularJS的指令nghide和ngshow也可以实现这样的功能,使用两个指令的语法如下。在上述语法中,expression表达式返回的值是布尔类型。ngshow指令绑定值为true时显示HTML元素。为false时隐藏HTML元素。nghide指令绑定值为true时隐藏HTML元素,为false时显示HTML元素。所有的HTML元素都支持ngshow和nghide指令。接下来通过一个案例来演示ngshow和nghide指令的具体用法,代码见demo34.html。demo34.html1234
5
ng-show和ng-hide678

9

10

12

ng-show="myTrue"

13

14

16

ng-show="myFalse"

17

18

20

ng-hide="myTrue"

21

22

24

ng-hide="myFalse"

25

26

27

28
29
<script>30var app=angular.module(app,[]);31app.controller(MainController,function($scope){32 //定义两个boolean类型的属性33$scope.myTrue=true;34$scope.myFalse=false;35});363738在上述语法中,第10~25行定义了4个div,并且在div上分别用ngshow和nghide指令绑定了myTrue和图35demo34.html页面效果myFalse。打开Chrome浏览器,访问demo34.html,页面效果如图35所示。在图35中可以看出,绑定ngshow="myTrue"和nghide="myFalse"的两个div显示出来了。4. ngreadonly和ngdisabled在AngularJS中,ngreadonly和ngdisabled指令用于设置元素的只读和无效状态,与JavaScript相同,只读和无效状态是针对输入框的。只读状态下,输入框的数据不能编辑,但是会被表单提交;而无效状态下,输入框的数据不能编辑,也不会被提交。使用ngreadonly和ngdisabled指令的语法如下。

在上述语法中,expression表达式返回的值是布尔类型。ngreadonly指令返回值为true时用于设置输入框的只读状态,ngdisabled指令返回值为true时用于设置输入框的无效状态。接下来通过一个案例来演示ngreadonly和ngdisabled指令的具体用法,代码见demo35.html。demo35.html1234
5
ng-readonly和on-disabled678

9

10

11
12

13
14

15

16
17

18

19

20
21
<script>22//创建一个AngularJS模块23var app=angular.module(app, []);24app.controller(MainController, function ($scope) {25//定义属性text用于绑定ng-model26$scope.text=some text;27//定义属性boolean用于绑定ng-readonly和on-disabled28$scope.boolean=true;29});303132在上述代码中,第26行定义了属性text用于绑定ngmodel;第28行定义了属性boolean用于绑定到ngreadonly图36demo35.html页面效果和ngdisabled;第11行使用ngmodel指令将text属性绑定到input输入框,并使用ngreadonly指令设置输入框为只读状态;第13行使用ngmodel指令将text属性绑定到input输入框,并使用ngdisabled指令设置输入框为无效状态。打开Chrome浏览器,访问demo35.html,页面效果如图36所示。在图36中,第一个输入框的状态是只读,第二个输入框的状态是无效,两个输入框的some text内容都不能编辑。单击“提交”按钮提交表单,观察地址栏,如图37所示。图37表单提交效果从图37中可以看出,只有id1的数据被提交了,说明只读输入框中的数据被提交了,而无效状态输入框中的数据没有被提交。3.2.3事件绑定类指令AngularJS中用于事件绑定功能指令的名称与JavaScript的事件名称非常类似,AngularJS中常用的事件绑定类指令如表34所示。表34事件绑定类指令指令描述ngclick用于指定鼠标单击HTML元素时需要执行的操作,所有HTML元素都支持该指令ngdblclick用于指定鼠标双击HTML元素时需要执行的操作,所有HTML元素都支持该指令ngfocus用于指定HTML元素获取焦点时需要执行的操作,支持


16

ng-show="myFalse"

17

HTML5混合App开发 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:HTML5混合App开发