第1章 走进小程序的开发世界 1
1.1 认识小程序 2
1.1.1 小程序的发展史 2
1.1.2 几款优秀的小程序 2
1.1.3 小程序的适用场景 4
1.1.4 小程序的设计建议 5
1.2 开发前的准备 6
1.2.1 注册小程序开发账号 6
1.2.2 下载和安装微信开发者工具 7
1.2.3 微信开发者工具的使用简介 9
1.2.4 发布小程序体验版与上架小程序 10
1.3 编写HelloWorld程序 11
1.3.1 分析小程序示例工程 11
1.3.2 修改示例程序 15
1.3.3 进行真机调试 16
第2章 小程序开发中的“三驾马车” 18
2.1 代码逻辑的灵魂——ECMAScript6基础 19
2.1.1 测试JavaScript代码 19
2.1.2 使用变量 20
2.1.3 7种重要的数据类型 20
2.1.4 强大的运算符 22
2.1.5 条件语句 24
2.1.6 多分支结构 25
2.1.7 循环结构 26
2.1.8 中断结构 28
2.1.9 异常捕获 28
2.1.10 使用函数 30
2.1.11 使用对象 31
2.1.12 定义类 32
2.1.13 解构赋值 33
2.1.14 Proxy代理对象 34
2.1.15 Promise承诺对象 35
2.2 应用程序的骨架——WXML基础 35
2.2.1 认识WXML 36
2.2.2 将数据绑定到WXML界面中 36
2.2.3 WXML的逻辑能力 37
2.2.4 WXML模板 39
2.3 装裱与布局——WXSS基础 41
2.3.1 WXSS与CSS 41
2.3.2 WXSS选择器 43
2.3.3 WXSS背景相关属性 44
2.3.4 WXSS文本相关属性 45
2.3.5 WXSS边距与边框相关属性 46
2.3.6 WXSS元素定位相关属性 48
2.3.7 其他显示效果相关属性 49
第3章 小程序容器组件应用 50
3.1 view视图组件 51
3.1.1 view视图组件核心属性 51
3.1.2 组件flex布局 51
3.2 可滚动的容器视图组件 54
3.2.1 scroll-view滚动视图组件 54
3.2.2 swiper轮播组件 55
3.2.3 movable-view可拖曳组件 57
3.3 浮层视图组件 58
3.3.1 cover-view浮层文本视图 58
3.3.2 cover-image浮层图片视图 59
第4章 小程序中的视图组件 60
4.1 基础视图组件 61
4.1.1 icon组件 61
4.1.2 text组件 63
4.1.3 rich-text组件 63
4.1.4 progress组件 66
4.1.5 button组件 67
4.2 用户输入相关组件 69
4.2.1 checkbox组件 69
4.2.2 radio组件 70
4.2.3 input组件 71
4.2.4 switch组件 72
4.2.5 label组件 73
4.2.6 slider组件 74
4.2.7 textarea组件 75
4.3 选择器组件 76
4.3.1 普通选择器 76
4.3.2 多列选择器 78
4.3.3 时间选择器 80
4.3.4 日期选择器 80
4.3.5 地区选择器 81
4.3.6 选择器视图 82
第5章 高级视图组件 84
5.1 导航组件 85
5.1.1 navigator导航组件 85
5.1.2 导航跳转方式 86
5.2 多媒体相关组件 87
5.2.1 image组件 87
5.2.2 audio组件 88
5.2.3 video组件 90
5.2.4 camera组件 93
5.2.5 直播相关组件 95
5.3 地图组件 101
5.3.1 map组件的应用 101
5.3.2 向地图上添加标记点 103
5.3.3 向地图上添加线段 104
5.3.4 向地图上添加闭合多边形 105
5.3.5 向地图上添加圆形 106
5.3.6 MapContext对象 107
5.4 canvas组件 108
5.4.1 使用canvas组件 108
5.4.2 CanvasContext上下文对象详解 109
第6章 自定义组件 115
6.1 创建自定义组件 116
6.1.1 创建自定义组件模板 116
6.1.2 使用自定义组件插槽 118
6.2 自定义组件的数据与方法绑定 121
6.2.1 组件构造方法 122
6.2.2 内部数据与外部数据 123
6.2.3 使用数据集进行传值 124
6.2.4 自定义组件的事件 125
6.3 组件的生命周期函数与behaviors 126
6.3.1 组件的生命周期函数 126
6.3.2 行为混入 128
6.4 组件间关系与数据监听器 130
6.4.1 定义组件关系 130
6.4.2 使用数据监听器 132
第7章 网络与数据存储 134
7.1 进行网络请求 135
7.1.1 使用第三方网络数据服务 135
7.1.2 在小程序中访问接口服务 138
7.1.3 wx.request请求方法详解 140
7.2 文件下载与上传 141
7.2.1 文件下载 141
7.2.2 文件上传 142
7.3 使用WebSocket技术 143
7.3.1 建立WebSocket对象 143
7.3.2 使用SocketTask对象 144
7.4 小程序中的数据存储技术 145
7.4.1 数据缓存 145
7.4.2 使用文件接口进行持久化存储 148
7.4.3 使用文件管理器 151
第8章 界面交互与动画 155
8.1 系统弹窗 156
8.1.1 消息框 156
8.1.2 对话框 157
8.1.3 等待提示框 158
8.1.4 抽屉弹窗 159
8.2 操作导航栏与标签栏 160
8.2.1 使用接口设置导航栏 160
8.2.2 配置标签栏 162
8.3 页面的下拉刷新与上拉加载 164
8.3.1 配置下拉刷新与上拉加载功能 164
8.3.2 下拉刷新与上拉加载的回调方法 166
8.4 使用WXSS定义动画 166
8.4.1 定义关键帧 167
8.4.2 组件的形态变换与动画 169
8.4.3 过渡动画 171
8.4.4 监听动画过程 172
8.5 使用Animation动画对象 173
8.5.1 Animation动画示例 173
8.5.2 Animation对象方法 174
第9章 小程序中的功能接口 176
9.1 系统信息与更新 177
9.1.1 获取系统信息 177
9.1.2 小程序更新机制 178
9.2 转发与分享 179
9.2.1 小程序分享入口 179
9.2.2 分享参数配置 180
9.3 获取微信用户信息 180
9.3.1 关于用户授权 181
9.3.2 获取用户信息 182
9.3.3 进行登录操作 183
9.4 调用微信功能插件 184
9.4.1 使用微信支付 184
9.4.2 卡券与发票 184
9.4.3 获取用户运动数据 185
9.5 常用的设备功能接口 186
9.5.1 网络与Wi-Fi 186
9.5.2 电话与联系人 188
9.5.3 屏幕与电量 190
9.5.4 振动与扫码 191
第10章 小程序全栈开发——使用云开发 193
10.1 云开发配置 194
10.1.1 开通云开发 194
10.1.2 云开发控制台简介 195
10.2 使用云端数据库 196
10.2.1 在控制台使用数据库 196
10.2.2 在小程序中调用数据库 198
10.2.3 在小程序中进行数据查询操作 199
10.2.4 数据的更新与删除 202
10.3 使用云存储 204
10.3.1 存储管理后台 204
10.3.2 在小程序端操作云文件 205
10.4 云函数 207
10.4.1 使用云函数 207
10.4.2 进行参数传递 209
10.4.3 异步执行的云函数 210
10.4.4 在云函数中调用数据库接口 211
第11章 实战项目:新闻客户端小程序 214
11.1 开发前的准备 215
11.1.1 需求确认、方案选择与页面设计 215
11.1.2 搭建初始工程 216
11.2 设计“精选”页面 217
11.2.1 “精选”页面布局开发 218
11.2.2 “精选”页面接口调用与数据渲染 220
11.3 开发“分类”页面 225
11.3.1 分类目录页的搭建 225
11.3.2 开发新闻分类列表页面 227
11.4 新闻详情页与新闻收藏功能的开发 231
11.4.1 新闻详情页的开发 231
11.4.2 新闻收藏功能的开发 231
11.5 完善收藏功能与添加分享功能 234
11.5.1 编写收藏页面 234
11.5.2 添加分享功能 236
第12章 实战项目:读书社区小程序 237
12.1 项目需求分析与接口服务准备 238
12.1.1 读书社区项目需求 238
12.1.2 使用万维易源网的图书查询接口服务 238
12.2 工程基础工具封装 240
12.2.1 创建工程 241
12.2.2 基础工具封装 241
12.2.3 悬浮按钮组件的封装 245
12.2.4 图书录入功能的开发 246
12.3 图书详情页的开发 247
12.3.1 编写详情页页面 247
12.3.2 增加登录与收藏相关逻辑 250
12.4 编写书房主页 256
12.4.1 书房页面布局 256
12.4.2 获取书房信息 257
12.4.3 添加编辑书房名称和书房简介功能 259
12.5 开发书评相关模块 262
12.5.1 发布评论页面开发 262
12.5.2 发布书评功能 265
12.5.3 在书籍详情页添加书评模块 267
12.6 应用首页开发 269
12.6.1 开发首页基础功能 269
12.6.2 进行书评信息的请求 272
第13章 编程之路 274
13.1 原生开发 275
13.1.1 iOS原生开发 275
13.1.2 Android原生开发 276
13.1.3 混合开发技术 276
13.2 网站开发 277
13.2.1 Python编程语言 277
13.2.2 Java编程语言 278
13.2.3 JavaScript编程语言 278
13.2.4 Ruby编程语言 279
13.3 编程之路 279