第一部分 小程序是什么 2
第1章 小程序的定义 2
1.1 走进小程序 2
1.2 小程序与微信公众号 3
1.2.1 获取方式 3
1.2.2 功能特性 8
1.2.3 在微信中的入口 8
1.3 小程序与App 9
1.3.1 运行原理 9
1.3.2 开发推广难度 10
1.3.3 使用体验 10
第2章 小程序的定位 12
2.1 小程序的特点 12
2.2 小程序的使用场景 15
第3章 小程序的运行 17
3.1 小程序本身的生命周期 17
3.2 小程序页面的生命周期 19
第二部分 开发设计小程序 26
第4章 初次上手 26
4.1 注册小程序账号 26
4.1.1 已认证公众号快速获取小程序 26
4.1.2 个人/企业注册小程序 28
4.2 开始前的准备 35
4.2.1 快速创建门店小程序 35
4.2.2 获取小程序开发者工具 36
4.3 开发者工具的使用 37
第5章 一个叫Hello World的小程序 44
5.1 创建示例项目 44
5.2 代码文件目录结构 46
5.2.1 小程序的目录结构 46
5.2.2 探究Hello World的实现 47
5.3 在手机上预览小程序 56
5.3.1 Hello World在手机上的体验 56
5.3.2 调试预览及ES6 API支持细节 58
5.4 审核和发布小程序 62
第6章 小程序结构详解 64
6.1 MINA框架 64
6.1.1 MINA框架简介 64
6.1.2 MINA框架的功能 65
6.2 配置文件详解 66
6.2.1 全局配置文件 66
6.2.2 页面配置文件 71
6.3 视图层 71
6.3.1 WXML 72
6.3.2 WXSS 85
6.3.3 组件 86
6.4 逻辑层 86
6.4.1 注册程序 86
6.4.2 注册页面 88
6.4.3 文件作用域及模块化 91
6.4.4 API 92
第7章 小程序的基本组件 93
7.1 视图容器 95
7.1.1 view视图容器 95
7.1.2 scroll-view滚动视图容器 98
7.1.3 swiper滑块视图容器和swiper-item滑动项目组件 101
7.2 基础内容 103
7.2.1 icon图标 103
7.2.2 text文本 105
7.2.3 progress进度条 106
7.3 表单组件 108
7.3.1 button按钮 108
7.3.2 checkbox多选项目 109
7.3.3 form表单 111
7.3.4 input输入框 113
7.3.5 label标签 116
7.3.6 picker选择器 118
7.3.7 picker-view嵌入页面的滚动选择器 121
7.3.8 radio单选项目 123
7.3.9 slider滑动选择器 125
7.3.10 switch开关选择器 127
7.3.11 textarea多行输入框 128
7.4 页面链接 130
7.5 媒体组件 133
7.5.1 audio音频组件 133
7.5.2 video视频组件 135
7.5.3 image图片组件 137
7.6 地图组件 140
7.7 画布 143
7.8 客服会话按钮 145
第8章 小程序编程接口(API)详解 147
8.1 网络 147
8.1.1 发起请求 147
8.1.2 上传和下载 150
8.1.3 WebSocket 154
8.2 媒体 157
8.2.1 图片 157
8.2.2 录音 162
8.2.3 音频播放控制 162
8.2.4 音乐播放控制 168
8.2.5 音频组件控制 170
8.2.6 视频 170
8.2.7 视频组件控制 173
8.3 文件 174
8.4 数据缓存 179
8.5 位置 185
8.5.1 获取位置 185
8.5.2 查看位置 188
8.5.3 地图组件控制 189
8.6 设备 190
8.6.1 系统信息 190
8.6.2 网络状态 192
8.6.3 加速度计 193
8.6.4 罗盘 196
8.6.5 拨打电话 198
8.6.6 扫码 199
8.6.7 剪贴板 201
8.6.8 蓝牙 201
8.7 界面 213
8.7.1 交互反馈 213
8.7.2 设置导航条 216
8.7.3 导航 217
8.7.4 动画 219
8.7.5 绘图 223
8.7.6 下拉刷新 245
8.8 第三方平台 246
8.9 开放接口 248
8.9.1 登录 248
8.9.2 用户信息 252
8.9.3 微信支付 254
8.9.4 模板消息 255
8.9.5 客服消息 259
8.9.6 分享 267
8.9.7 获取二维码 268
8.9.8 收货地址 269
8.9.9 卡券 270
8.9.10 设置 271
8.10 数据分析 272
8.10.1 概况趋势 272
8.10.2 访问趋势 273
8.10.3 访问分布 276
8.10.4 访问留存 280
8.10.5 访问页面 283
8.11 拓展接口 285
第9章 小程序和后台服务器数据交互实例 286
9.1 服务器申请购买与配置 286
9.2 如何取得HTTPS认证 292
9.3 后台数据接口设计实例 294
9.4 小程序调用数据交互实例 298
第10章 小程序的安全及性能 302
10.1 小程序安全设置 302
10.1.1 数据安全 303
10.1.2 网络安全 304
10.1.3 存储安全 304
10.1.4 开放接口安全 305
10.1.5 钓鱼风险 305
10.2 小程序性能优化 306
10.2.1 网络请求接口域名的限制解决 306
10.2.2 应用内部支持HTTPS请求 306
10.2.3 并发的网络请求 306
10.2.4 多个页面的代码合用 306
10.2.5 小程序登录问题 307
10.2.6 开发目录与发布目录分开管理 307
10.2.7 小程序大小优化 308
第三部分 小程序实例 310
第11章 电商类小程序:在线商城 310
11.1 整体思路设计 310
11.1.1 页面设置 310
11.1.2 首页排版布局 311
11.1.3 商品详情页面排版布局 314
11.1.4 购物车页面排版布局 314
11.1.5 其他页面元素和相关API的使用 316
11.2 完整代码实现 318
第12章 工具类小程序:番茄时钟 319
12.1 整体思路设计 319
12.1.1 页面设置 319
12.1.2 主页排版布局 320
12.1.3 动画效果 320
12.1.4 历史记录页面排版布局 322
12.1.5 相关API 323
12.2 完整代码实现 324
第13章 多媒体类小程序:小相册 325
13.1 整体思路设计 325
13.1.1 布局方案 325
13.1.2 单页式布局 326
13.1.3 与服务器的数据交互 326
13.1.4 使用Promise对象编写异步计算 326
13.1.5 首页排版布局 328
13.1.6 底部菜单设计 330
13.1.7 预览模式页面布局 331
13.1.8 多媒体信息的管理 331
13.2 完整代码实现 333
第14章 内容类小程序:新闻阅读 334
14.1 整体思路设计 334
14.1.1 页面设置 334
14.1.2 富文本信息的处理 335
14.1.3 详情页面 337
14.1.4 使用Query参数在页面间传递数据 338
14.1.5 分享接口的调用 338
14.1.6 订阅页面 339
14.2 完整代码实现 339
参考文献 340