第1章 相关技术介绍 1
1.1 探究开发模式 1
1.1.1 Native App 1
1.1.2 Web App 2
1.1.3 Hybrid App 2
1.1.4 React Native 3
1.1.5 微信小程序 4
1.2 梳理学习路线 4
1.2.1 依赖关系 4
1.2.2 TypeScript 5
1.2.3 Angular4 6
1.2.4 Ionic3 7
1.2.5 Cordova 8
1.2.6 Ionic Native 10
1.2.7 CodePush 10
第2章 配置开发环境 12
2.1 安装Node.js 12
2.2 使用淘宝NPM镜像 14
2.3 安装Ionic CLI 14
2.4 安装CodePush CLI 15
2.5 安装Visual Studio Code 16
2.6 配置Android环境 19
2.6.1 Java环境变量 19
2.6.2 Android Studio 19
2.6.3 Android模拟器 20
2.7 配置iOS环境 23
2.7.1 前期准备 23
2.7.2 Xcode 23
2.7.3 iOS模拟器 24
第3章 Ionic3初体验 26
3.1 新建工程项目 26
3.2 浏览器的调试 27
3.3 模拟器的调试 28
3.3.1 Android模拟器的调试 28
3.3.2 iOS模拟器的调试 30
3.4 梳理目录结构 32
3.5 查看官方Demo 34
第4章 TypeScript基础语法入门 36
4.1 声明与建议 36
4.2 配置独立环境 36
4.3 变量类型 37
4.3.1 类型定义 37
4.3.2 类型推断 39
4.3.3 类型断言 39
4.4 函数 39
4.4.1 类型限定 39
4.4.2 可选参数 40
4.4.3 默认参数 41
4.4.4 剩余参数 41
4.4.5 箭头函数 42
4.5 类 43
4.5.1 面向对象 43
4.5.2 继承 43
4.5.3 存取器 44
4.5.4 其他特性 45
4.6 接口 45
4.6.1 类型限定 45
4.6.2 实现 46
4.6.3 多继承 47
4.7 模块 47
4.7.1 基本概念 47
4.7.2 导出 48
4.7.3 导入 49
4.8 其他 50
4.8.1 模板字符串 50
4.8.2 迭代器 51
4.8.3 装饰器 51
第5章 Angular4核心思想简介 53
5.1 声明与建议 53
5.2 配置独立环境 54
5.3 整体架构 55
5.3.1 全新理念 55
5.3.2 “八大金刚” 55
5.4 模块(Module) 57
5.4.1 根模块 57
5.4.2 对比TypeScript模块 58
5.4.3 常用模块 58
5.5 组件(Component) 59
5.5.1 封装复用 59
5.5.2 局部样式 61
5.5.3 输入/输出 62
5.5.4 函数调用 63
5.5.5 层次结构 64
5.6 模板(Template) 65
5.6.1 模板语法 65
5.6.2 插值表达式 66
5.6.3 模板引用变量 66
5.6.4 管道 67
5.6.5 安全导航操作符 68
5.7 数据绑定(Data Binding) 68
5.7.1 基本概念 68
5.7.2 属性绑定 69
5.7.3 CSS类绑定 69
5.7.4 CSS样式绑定 70
5.7.5 事件绑定 70
5.7.6 双向数据绑定 71
5.8 指令(Directive) 72
5.8.1 指令分类 72
5.8.2 ngClass 72
5.8.3 ngStyle 73
5.8.4 ngIf 73
5.8.5 ngFor 74
5.8.6 ngSwitch 75
5.9 服务(Service) 76
5.9.1 职责分离 76
5.9.2 依赖注入 76
5.9.3 Promise 78
5.9.4 网络服务 80
第6章 Ionic3页面布局控件 83
6.1 声明与建议 83
6.2 顶栏与底栏(Header&Footer) 84
6.3 导航栏(Navbar&Toolbar) 84
6.4 内容(Content) 86
6.5 滚动(Scroll) 89
6.6 滑动(Slide) 89
6.7 菜单(Menu) 93
6.7.1 菜单组件 93
6.7.2 菜单服务 95
6.8 网格(Grid&Row&Col) 98
6.8.1 十二列布局 98
6.8.2 屏幕自适应 100
6.9 标签(Tab) 102
6.9.1 文字标签 102
6.9.2 图标标签 103
6.9.3 文字图标标签 104
6.9.4 徽章标签 104
6.9.5 标签组API 105
6.9.6 标签API 107
6.10 段(Segment) 107
6.11 分裂板(SplitPane) 110
第7章 Ionic3列表相关控件 112
7.1 列表(List) 112
7.1.1 普通列表 112
7.1.2 无线列表 113
7.1.3 内联列表 114
7.1.4 分组列表 115
7.1.5 列表头 116
7.2 条目(Item) 117
7.2.1 布局位置 117
7.2.2 滑动条目 119
7.2.3 重排序 120
7.2.4 其他 122
7.3 注释(Note) 123
7.4 下拉刷新(Refresher) 124
7.5 上拉加载(InfiniteScroll) 127
7.6 虚拟滚动(VirtualScroll) 129
第8章 Ionic3弹出层控件 130
8.1 动作菜单(Action Sheet) 130
8.2 对话框(Alert) 133
8.2.1 基本对话框 133
8.2.2 输入对话框 135
8.2.3 确认对话框 137
8.2.4 单选对话框 139
8.2.5 复选对话框 140
8.3 加载框(Loading) 142
8.4 模态框(Modal) 144
8.5 浮动框(Popover) 146
8.6 弹出框(Toast) 148
第9章 Ionic3页面元素控件 151
9.1 头像(Avatar) 151
9.2 徽章(Badge) 152
9.3 按钮(Button) 153
9.3.1 默认样式 153
9.3.2 轮廓样式 154
9.3.3 简易样式 155
9.3.4 圆形按钮 156
9.3.5 块状按钮 157
9.3.6 全宽按钮 157
9.3.7 按钮尺寸 158
9.3.8 图标按钮 159
9.4 卡片(Card) 160
9.4.1 简易卡片 160
9.4.2 复合卡片 161
9.5 复选按钮(Checkbox) 163
9.6 碎片(Chip) 165
9.7 日期时间(DateTime) 167
9.8 浮动按钮(FAB) 171
9.9 输入(Input) 173
9.9.1 普通输入 174
9.9.2 固定输入 175
9.9.3 栈式输入 176
9.9.4 浮动输入 177
9.9.5 相关属性 178
9.10 单选按钮(Radio) 178
9.11 范围(Range) 180
9.12 搜索栏(Searchbar) 182
9.13 选择(Select&Option) 184
9.14 开关按钮(Toggle) 186
9.15 缩略图(Thumbnail) 187
9.16 文字样式(Typography) 188
第10章 Ionic3其他知识点 189
10.1 配置文件 189
10.1.1 根模块 189
10.1.2 config.xml 191
10.1.3 index.html 193
10.2 页面生命周期 196
10.2.1 基本概念 196
10.2.2 流程详解 196
10.2.3 根组件 199
10.3 页面导航 200
10.3.1 基本概念 200
10.3.2 根组件导航 201
10.3.3 页面组件导航 202
10.3.4 标签(Tab)导航 204
10.3.5 NavController API 206
10.4 全局事件 207
10.5 全局配置 209
10.6 数据持久化 212
10.7 主题样式 214
10.7.1 分层控制 214
10.7.2 SCSS简介 215
10.7.3 主题颜色 218
10.7.4 样式覆盖 219
10.8 字体图标 220
第11章 Cordova插件与Ionic Native 222
11.1 完善跨平台体验 222
11.2 Cordova插件库 223
11.3 安装Cordova插件 225
11.3.1 下载安装 225
11.3.2 使用说明 226
11.3.3 模拟测试 228
11.4 卸载Cordova插件 229
11.5 更新Cordova插件 229
11.5.1 更新检测工具 229
11.5.2 更新操作步骤 230
11.6 不使用Ionic Native 231
11.6.1 特殊调用方式 231
11.6.2 改造回调函数 232
第12章 CodePush集成与使用 234
12.1 声明与建议 234
12.2 引入热更新机制 234
12.3 开发端CLI 235
12.3.1 基本概念 235
12.3.2 注册账号 236
12.3.3 App管理 237
12.3.4 分支管理 239
12.3.5 推送更新 240
12.3.6 版本控制 241
12.3.7 提升操作 242
12.3.8 回滚操作 243
12.3.9 历史记录 244
12.3.10 统计数据 244
12.4 客户端SDK 245
12.4.1 基本概念 245
12.4.2 下载安装 246
12.4.3 自动同步 247
12.4.4 其他API 250
12.5 Mobile Center 251
第13章 示例App设计与实现 253
13.1 示例说明 253
13.2 前期准备 254
13.3 Ionic3页面封装 257
13.3.1 设计思想 257
13.3.2 列表页面 258
13.4 Ionic3组件封装 266
13.4.1 设计思想 266
13.4.2 条形菜单组件 266
13.4.3 图片选择组件 268
13.5 Ionic3服务封装 273
13.5.1 设计思想 273
13.5.2 对话框服务 273
13.5.3 网络交互服务 275
13.6 集成CodePush 284
13.6.1 服务封装 284
13.6.2 自动更新 290
13.6.3 分支切换 291
第14章 发布到应用商店 293
14.1 性能优化策略 293
14.1.1 性能瓶颈 293
14.1.2 Crosswalk 294
14.1.3 WKWebView 295
14.1.4 预编译与摇树优化 296
14.2 安全加固策略 297
14.2.1 安全风险 297
14.2.2 代码压缩与代码混淆 297
14.2.3 签名机制 298
14.3 打包并提交 300
14.3.1 Android生成apk 300
14.3.2 iOS生成ipa 301
14.4 更新与维护 302
14.4.1 选择更新方式 302
14.4.2 更新Ionic 303
结语 306
参考文献 309