在竞争激烈的移动互联网环境下,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章是一个综合项目,目的使用了加深对前面知识的巩固。
本书附有配套资源,源代码、教学视频、习题、教学课件等资源,而且为了帮助读者更好的学习本书的内容,还提供了在线答疑,希望得到更多读者的关注。
本书即可作为高等院校本、专科计算机相关专业的程序设计课程教材,也可作为广大计算机编程爱好者的参考用书。
本教材主要有以下三个特色:
特色一:技术成熟,适合新手入门
本书中介绍的ionic框架,在混合App开发领域技术成熟度高,相比其他跨平台解决方案,更适合新手入门。
特色二:由浅入深,结构设计合理
本书在设计过程中,注重知识点的先后顺序,反复斟酌每个知识点的重要程度和难易程度,真正做到由浅入深,由易到难。
特色三:案例丰富,提升实操技能
本书中大部分知识点都配有案例练习和代码分析,并配置了两个阶段项目和一个综合项目,让读者即学即用。
第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 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