2016年9月22日凌晨,微信公眾平臺向外發(fā)出200個小程序內(nèi)測邀請函,隨之也揭開了之前一直在傳的微信應(yīng)用號的面紗。微信小程序有兩大特色:首先APP功能可以直接通過關(guān)注應(yīng)用號來實現(xiàn),所以用戶就省去了安裝下載卸載等等一系列動作,對那些使用頻率不高的軟件來說,完全可以用微信小程序來代替;另外,用戶也免去了不定時下載軟件更新包的困擾。毫無疑問,開發(fā)者將是微信小程序的最大獲益群體。對于開發(fā)者而言,程序小程序可以節(jié)省開發(fā)成本,并且可以提升研發(fā)效率,開發(fā)人員只需要研發(fā)出一款適用于瀏覽器應(yīng)用的產(chǎn)品,就可滿足不同手機、不同操作系統(tǒng)的使用需求。另外,借助微信廣大的用戶,微信小程序的營銷推廣工作也能取到事半功倍的效果?梢灶A見,微信小程序一旦正式推出,必將得到快速的應(yīng)用。本書以微信小程序內(nèi)測版為基礎(chǔ),全面、系統(tǒng)的介紹了微信小程序的開發(fā)。包括開發(fā)流程、技術(shù)框架、組件的使用、API的使用等各方面內(nèi)容。全書以案例為導向,針對每個知識點都用實際案例進行演示,讀者可快速入門、并根據(jù)本書的內(nèi)容循序漸進的學會微信小程序的開發(fā)。
很簡單:只需掌握HTML5基礎(chǔ)知識,即可跟隨本書進行學習
很豐富:包括API、多媒體、網(wǎng)絡(luò)、手機硬件控制等內(nèi)容
很圖解:知識點以易懂的圖示進行講解,清晰明了地闡述相應(yīng)知識
很實戰(zhàn):針對每個知識點,都以案例為引導,幫助讀者動手操作
前言
2016年9月22日凌晨,微信官方正式推出應(yīng)用號“小程序”內(nèi)測功能。
那么,“小程序”是什么?看看騰訊副總裁、微信創(chuàng)始人是怎么說的吧,如下圖所示是張小龍發(fā)布的信息。
第一批參與小程序測試的包括大眾點評、貓眼電影、海南航空等日常生活服務(wù)類企業(yè),以微信官方邀請和企業(yè)申請為主,共發(fā)出了200封應(yīng)用號內(nèi)部公測邀請。
除了官方邀請的測試用戶,普通的開發(fā)人員怎么辦?微信提供了一套開發(fā)工具,普通用戶不用申請AppID,也可在電腦中學習、模擬小程序的大部分功能。
2016年11月4日,微信小程序正式公測,企事業(yè)單位可以申請公測賬號了(個人用戶暫時還不能申請),有了這個公測賬號,開發(fā)人員不僅可以在電腦中模擬小程序,而且可以將開發(fā)代碼發(fā)布出去供其他用戶使用。
2017年1月9日,微信小程序正式上線,只要將微信更新到最新版本(V6.5.3),即可通過線下掃碼、微信搜索、公眾號關(guān)聯(lián)、好友分享、歷史記錄等5種方式體驗微信小程序。
為了幫助廣大初學者快速學習微信小程序的開發(fā),本書從基礎(chǔ)開始,逐步介紹微信小程序開發(fā)中的相關(guān)知識。
全書共分3篇12章。第1篇介紹微信小程序的基礎(chǔ)知識,包括微信小程序開發(fā)工具、微信小程序架構(gòu)分析。包括第1章和第2章的內(nèi)容。
第1章初識微信小程序,首先介紹了微信小程序開發(fā)工具的下載、安裝和使用,然后使用該開發(fā)工具創(chuàng)建了第一個微信小程序,并在電腦模擬器中進行查看,最后發(fā)布到手機微信中查看運行效果。
第2章對微信小程序的架構(gòu)進行分析,從小程序的目錄結(jié)構(gòu)、文件名的約定開始,詳細介紹小程序的配置文件、頁面描述文件、頁面樣式文件和邏輯層文件的相關(guān)知識。
第2篇介紹微信小程序的常用模塊,通過一些小案例詳細介紹了微信小程序提供的各種組件的使用、API函數(shù)的使用,訪問手機硬件的函數(shù)。包括第3章至第10章的內(nèi)容。
第3章介紹快速開發(fā)UI界面,以一個加法計算器的實際案例介紹了小程序UI設(shè)計中常用組件的使用方法。
第4章美化UI界面,繼續(xù)修改上一章的計算器案例,本章中使用其他一些UI組件來設(shè)計計算器,使計算器的使用更方便。在這一章進一步學習了更多的小程序UI組件使用。
第5章保存數(shù)據(jù)到本地,介紹了小程序中將數(shù)據(jù)保存到本地緩存,從本地緩存中讀取數(shù)據(jù)的方法,繼續(xù)修改第4章的計算器程序,增加了查看歷史記錄的功能。
第6章在小程序中設(shè)計一個旅行計劃調(diào)查表單,學習小程序表單控件的使用。
第7章介紹微信小程序的交互反饋功能,包括等待提示信息、彈出框的使用、底部彈出菜單的使用等相關(guān)內(nèi)容。
第8章介紹在小程序中使用多媒體功能的相關(guān)知識,包括使用audio組件和使用audio API播放音樂,使用video組件播放視頻等相關(guān)內(nèi)容。
第9章介紹小程序與后端進行交互的相關(guān)知識,首先介紹了小程序提供的網(wǎng)絡(luò)訪問API,然后編寫了手機歸屬地查詢小案例,演示小程序網(wǎng)絡(luò)訪問API的使用方法。
第10章介紹小程序使用手機硬件設(shè)備的相關(guān)知識,包括拍照、錄音、獲取地理位置、獲取網(wǎng)絡(luò)狀態(tài)、獲取系統(tǒng)信息等相關(guān)內(nèi)容。
第3篇是綜合案例,以微天氣、微音樂這兩個完整案例的開發(fā),演示了微信小程序的全過程。第11章通過調(diào)用天氣預報API編寫出一個綜合案例——微天氣,第12章通過調(diào)用QQ音樂API編寫出一個綜合案例——微音樂。通過這2個綜合案例,讀者可進一步鞏固本書前10章中介紹的相關(guān)知識。
本書內(nèi)容由淺入深,每個知識點都通過小案例進行演示,適合希望通過微信小程序開發(fā)應(yīng)用的讀者,具有HTML 5基礎(chǔ)知識的讀者都可閱讀本書。
由于微信小程序推出的時間短,官方推出的開發(fā)工具更新較快,隨著時間的推移,本書介紹的一些知識點在新版本中可能會有更改。如果本書案例運行時出現(xiàn)錯誤提示時,讀者可查一下官方文檔,根據(jù)最新內(nèi)容修改后即可正常運行。
由于時間短,加之筆者水平有限,書中難免有疏漏之處,敬請讀者朋友批評指正。
編者
2017年1月
高洪濤,畢業(yè)于沈陽工業(yè)大學,碩士,現(xiàn)就職于中國刑事警察學院,IEEE會員,計算機學會會員。從事軟件開發(fā)多年,最初使用Java語言,目前主攻Android系統(tǒng)開發(fā)。從2013年開始對微信公共平臺進行研究,為多家公司開發(fā)過商用微信公共平臺,收到甲方好評。
第1篇 微信小程序基礎(chǔ)
第1章 初識微信小程序 2
1.1 微信小程序開發(fā)工具 2
1.1.1 獲取開發(fā)工具 2
1.1.2 安裝開發(fā)工具 3
1.2 開發(fā)第一個微信小程序 5
1.2.1 獲取微信小程序的AppID 5
1.2.2 創(chuàng)建項目 5
1.2.3 微信小程序主要文件 8
1.3 認識開發(fā)工具 9
1.3.1 開發(fā)工具界面 9
1.3.2 程序調(diào)試 9
1.3.3 代碼編輯 15
1.4 查看小程序效果 19
1.4.1 在開發(fā)工具中查看效果 19
1.4.2 在手機中查看效果 19
第2章 微信小程序架構(gòu)分析 21
2.1 微信小程序框架結(jié)構(gòu) 21
2.1.1 目錄結(jié)構(gòu) 22
2.1.2 主體文件 23
2.1.3 頁面文件 23
2.1.4 其他文件 24
2.2 配置文件詳解 24
2.2.1 主配置文件app.json 24
2.2.2 頁面配置文件 29
2.3 邏輯層js文件 29
2.3.1 用App函數(shù)注冊小程序 30
2.3.2 用Page函數(shù)注冊頁面 31
2.4 頁面描述文件wxml 34
2.4.1 初識組件 34
2.4.2 數(shù)據(jù)綁定 35
2.4.3 條件渲染 39
2.4.4 列表渲染 40
2.4.5 使用模板 42
2.4.6 引用其他頁面文件 45
2.5 頁面的事件 46
2.5.1 事件類型 46
2.5.2 事件綁定 47
2.5.3 事件對象 47
2.6 頁面樣式文件wxss 50
2.6.1 尺寸單位 50
2.6.2 樣式導入 50
第2篇 微信小程序常用模塊
第3章 快速開發(fā)UI界面 54
3.1 認識小程序的組件 54
3.1.1 小程序的組件 54
3.1.2 組件的使用 56
3.1.3 組件的通用屬性 57
3.2 加法計算器 59
3.2.1 認識view組件 60
3.2.2 認識input組件 62
3.2.3 認識button組件 64
3.2.4 計算機器界面UI 69
3.2.5 編寫計算代碼 71
3.2.6 測試加法計算器 72
3.3 另一種輸入數(shù)據(jù)的方式 73
3.3.1 認識slider組件 74
3.3.2 用slider輸入整數(shù) 74
第4章 美化UI界面 76
4.1 計算器功能需求 76
4.2 設(shè)計計算器界面 77
4.2.1 計算器小程序布局設(shè)計 77
4.2.2 搭建計算器小程序開發(fā)框架 77
4.2.3 用組件實現(xiàn)布局 78
4.2.4 設(shè)計組件的樣式 79
4.3 編寫計算器代碼 84
4.3.1 初始化數(shù)據(jù) 84
4.3.2 編寫按鈕代碼 88
4.3.3 編寫計算代碼 89
4.3.4 測試計算器小程序 92
4.4 美化計算器界面 93
4.4.1 認識icon組件 93
4.4.2 用icon美化計算器界面 94
4.4.3 小程序提供的icon組件 94
第5章 保存數(shù)據(jù)到本地 97
5.1 保存計算歷史界面設(shè)計 97
5.1.1 認識switch組件 97
5.1.2 switch組件簡單案例 98
5.2 修改計算器UI 99
5.2.1 添加switch組件 99
5.2.2 獲取switch的選擇 100
5.3 保存計算到本地緩存 101
5.3.1 保存數(shù)據(jù)的API接口函數(shù) 101
5.3.2 本地緩存計算過程 103
5.4 從本地緩存讀取數(shù)據(jù) 108
5.4.1 顯示歷史記錄的界面設(shè)計 108
5.4.2 頁面切換的相關(guān)接口函數(shù) 110
5.4.3 獲取本地緩存數(shù)據(jù) 111
5.5 保存多條歷史記錄 112
5.5.1 使用數(shù)組保存多條歷史記錄 113
5.5.2 清理本地緩存 115
第6章 旅行計劃調(diào)查 116
6.1 用form組件收集信息 116
6.1.1 認識form組件 116
6.1.2 表單的提交 118
6.1.3 表單的重置 120
6.2 設(shè)計旅行計劃調(diào)查 121
6.3 選擇性別(單選) 122
6.3.1 認識radio和radio-group組件 122
6.3.2 用radio組件列出性別 122
6.3.3 獲取性別內(nèi)容 124
6.3.4 根據(jù)數(shù)據(jù)生成radio組件 125
6.4 選擇想去的國家(多選) 126
6.4.1 認識checkbox和checkbox-group組件 127
6.4.2 國家名稱的多選 127
6.4.3 獲取選中的數(shù)據(jù) 128
6.5 選擇日期和時間 129
6.5.1 認識picker組件 129
6.5.2 picker組件小案例 131
6.5.3 收集出發(fā)日期 135
6.5.4 獲取picker選擇的日期 135
6.6 輸入建議 137
6.7 廣告輪播 138
6.7.1 認識swiper組件 139
6.7.2 swiper組件案例 139
6.7.3 測試案例 143
第7章 微信小程序的交互反饋 144
7.1 等待提示 144
7.1.1 認識loading組件 145
7.1.2 修改旅行計劃調(diào)查表單 148
7.2 用toast顯示提示信息 150
7.3 使用新版API顯示提示 153
7.3.1 接口函數(shù)wx.showToast 153
7.3.2 顯示loading提示信息 153
7.3.3 顯示toast提示信息 155
7.4 用modal組件顯示彈出框 156
7.4.1 認識modal組件 157
7.4.2 修改彈出框 159
7.4.3 在彈出框中輸入內(nèi)容 160
7.5 使用新版API顯示彈出框 163
7.6 底部彈出菜單 164
7.6.1 認識action-sheet組件 165
7.6.2 使用新版API顯示底部菜單 168
第8章 用多媒體展示更多 171
8.1 用audio組件播放音樂 171
8.1.1 認識audio組件 171
8.1.2 控制audio組件 173
8.2 使用audio API播放音樂 175
8.2.1 audio API簡介 175
8.2.2 audio API播放音樂示例 177
8.3 用video組件播放視頻 180
8.3.1 認識video組件 180
8.3.2 獲取視頻上下文 182
8.3.3 給視頻添加彈幕 182
第9章 與后臺交互 187
9.1 網(wǎng)絡(luò)訪問API 187
9.1.1 認識wx.request接口函數(shù) 188
9.1.2 獲取網(wǎng)上信息 188
9.2 手機歸屬地查詢 191
9.2.1 了解手機歸屬地查詢接口 191
9.2.2 編寫小程序代碼 195
9.2.3 調(diào)試修改小程序 198
第10章 使用手機設(shè)備 203
10.1 拍照 203
10.1.1 了解wx.chooseImage函數(shù) 203
10.1.2 編寫實例代碼 204
10.1.3 在電腦端測試選擇照片 206
10.1.4 在手機端測試選擇照片 207
10.2 錄音 210
10.2.1 認識wx.startRecord函數(shù) 210
10.2.2 認識wx.stopRecord函數(shù) 210
10.2.3 認識wx.playVoice函數(shù) 210
10.2.4 編寫錄音實例 211
10.2.5 測試錄音實例 213
10.3 獲取地理位置 214
10.3.1 認識wx.openLocation函數(shù) 214
10.3.2 認識wx.getLocation函數(shù) 215
10.3.3 獲取地理位置實例 215
10.3.4 在電腦中測試獲取地理位置實例 217
10.3.5 在手機中測試獲取地理位置實例 219
10.4 獲取網(wǎng)絡(luò)狀態(tài) 220
10.5 獲取系統(tǒng)信息 223
第3篇 微信小程序綜合案例
第11章 綜合案例——微天氣 228
11.1 天氣預報API 228
11.1.1 中國天氣網(wǎng)天氣預報接口 229
11.1.2 中華萬年歷的天氣預報接口 234
11.2 界面設(shè)計 236
11.3 編寫界面代碼 236
11.3.1 創(chuàng)建項目 237
11.3.2 編寫界面代碼 237
11.3.3 編寫界面樣式代碼 239
11.4 編寫邏輯層代碼 242
11.4.1 編寫數(shù)據(jù)初始化代碼 242
11.4.2 獲取當前位置的城市名稱 244
11.4.3 根據(jù)城市名稱獲取天氣預報 246
11.4.4 查詢天氣預報 248
第12章 綜合案例——微音樂 250
12.1 QQ音樂API 250
12.1.1 認識易源接口網(wǎng)站 250
12.1.2 QQ音樂接口 251
12.2 界面設(shè)計 255
12.3 創(chuàng)建項目 257
12.3.1 準備資源 257
12.3.2 創(chuàng)建項目 257
12.3.3 創(chuàng)建配置文件 259
12.4 音樂分類列表 260
12.4.1 開發(fā)頁面文件 260
12.4.2 開發(fā)頁面樣式文件 261
12.4.3 開發(fā)頁面邏輯代碼 261
12.5 音樂列表 263
12.5.1 開發(fā)頁面文件 263
12.5.2 開發(fā)頁面樣式文件 264
12.5.3 開發(fā)頁面邏輯代碼 265
12.6 播放音樂 267
12.6.1 開發(fā)頁面文件 267
12.6.2 開發(fā)頁面樣式文件 268
12.6.3 開發(fā)頁面邏輯代碼 269
12.7 搜索音樂 271
12.7.1 開發(fā)頁面文件 271
12.7.2 開發(fā)頁面樣式文件 272
12.7.3 開發(fā)頁面邏輯代碼 273