1. 程式人生 > >微信公眾平臺應用號開發教程

微信公眾平臺應用號開發教程

關鍵字:微信 應用號 開發教程
原文: http://www.cnblogs.com/txw1958/p/weixin-yingyonghao.html

本文介紹微信應用號開發過程。

目前還處於內測階段,微信只邀請了部分企業參與封測。想必大家都關心應用號的最終形態到底是什麼樣子?怎樣將一個「服務號」改造成為「小程式」?

我們暫時以一款簡單的第三方工具的例項,來演示一下開發過程吧——

 

序言

開始開發應用號之前,先看看官方公佈的「小程式」教程吧!(以下內容來自微信官方公佈的「小程式」開發指南)

本文件將帶你一步步建立完成一個微信小程式,並可以在手機上體驗該小程式的實際效果。這個小程式的首頁將會顯示歡迎語以及當前使用者的微信頭像,點選頭像,可以在新開的頁面中檢視當前小程式的啟動日誌。

1. 獲取微信小程式的 AppID

首先,我們需要擁有一個帳號,如果你能看到該文件,我們應當已經邀請併為你建立好一個帳號。注意不可直接使用服務號或訂閱號的 AppID。 利用提供的帳號,登入 https://mp.weixin.qq.com ,就可以在網站的「設定」-「開發者設定」中,檢視到微信小程式的 AppID 了。

 微信應用號

注意:如果我們不是用註冊時繫結的管理員微訊號,在手機上體驗該小程式。那麼我們還需要操作「繫結開發者」。即在「使用者身份 - 開發者」模組,繫結上需要體驗該小程式的微訊號。本教程預設註冊帳號、體驗都是使用管理員微訊號。

 

2. 建立專案

我們需要通過開發者工具,來完成小程式建立和程式碼編輯。

開發者工具安裝完成後,開啟並使用微信掃碼登入。選擇建立「專案」,填入上文獲取到的 AppID,設定一個本地專案的名稱(非小程式名稱),比如「我的第一個專案」,並選擇一個本地的資料夾作為程式碼儲存的目錄,點選「新建專案」就可以了。

為方便初學者瞭解微信小程式的基本程式碼結構,在建立過程中,如果選擇的本地資料夾是個空資料夾,開發者工具會提示,是否需要建立一個 quick start 專案。選擇「是」,開發者工具會幫助我們在開發目錄裡生成一個簡單的 demo。

微信應用號

專案建立成功後,我們就可以點選該專案,進入並看到完整的開發者工具介面,點選左側導航,在「編輯」裡可以檢視和編輯我們的程式碼,在「除錯」裡可以測試程式碼並模擬小程式在微信客戶端效果,在「專案」裡可以傳送到手機裡預覽實際效果。

 

3. 編寫程式碼

點選開發者工具左側導航的「編輯」,我們可以看到這個專案,已經初始化幷包含了一些簡單的程式碼檔案。最關鍵也是必不可少的,是 app.js、app.json、app.wxss 這三個。其中,.js 字尾的是指令碼檔案,.json 字尾的檔案是配置檔案,.wxss 字尾的是樣式表文件。微信小程式會讀取這些檔案,並生成小程式例項。

下面我們簡單瞭解這三個檔案的功能,方便修改以及從頭開發自己的微信小程式。

app.js 是小程式的指令碼程式碼。我們可以在這個檔案中監聽並處理小程式的生命週期函式、宣告全域性變數。呼叫 MINA 提供的豐富的 API,如本例的同步儲存及同步讀取本地資料。

微信應用號

app.json 是對整個小程式的全域性配置。我們可以在這個檔案中配置小程式是由哪些頁面組成,配置小程式的視窗  背景色,配置導航條樣式,配置預設標題。注意該檔案不可新增任何註釋。

微信應用號

app.wxss 是整個小程式的公共樣式表。我們可以在頁面元件的 class 屬性上直接使用 app.wxss 中宣告的樣式規則。

微信應用號

 

3. 建立頁面

在這個教程裡,我們有兩個頁面,index 頁面和 logs 頁面,即歡迎頁和小程式啟動日誌的展示頁,他們都在 pages 目錄下。微信小程式中的每一個頁面的【路徑 + 頁面名】都需要寫在 app.json 的 pages 中,且 pages 中的第一個頁面是小程式的首頁。

每一個小程式頁面是由同路徑下同名的四個不同字尾檔案的組成,如:index.js、index.wxml、index.wxss、index.json。.js 字尾的檔案是指令碼檔案,.json 字尾的檔案是配置檔案,.wxss 字尾的是樣式表文件,.wxml 字尾的檔案是頁面結構檔案。

index.wxml 是頁面的結構檔案:

微信應用號

本例中使用了 <view/>、<image/>、<text/> 來搭建頁面結構,繫結資料和互動處理函式。

index.js 是頁面的指令碼檔案,在這個檔案中我們可以監聽並處理頁面的生命週期函式、獲取小程式例項,宣告並處理資料,響應頁面互動事件等。

微信應用號

index.wxss 是頁面的樣式表:

微信應用號

頁面的樣式表是非必要的。當有頁面樣式表時,頁面的樣式表中的樣式規則會層疊覆蓋 app.wxss 中的樣式規則。如果不指定頁面的樣式表,也可以在頁面的結構檔案中直接使用 app.wxss 中指定的樣式規則。

index.json 是頁面的配置檔案:

頁面的配置檔案是非必要的。當有頁面的配置檔案時,配置項在該頁面會覆蓋 app.json 的 window 中相同的配置項。如果沒有指定的頁面配置檔案,則在該頁面直接使用 app.json 中的預設配置。

logs 的頁面結構

微信應用號

logs 頁面使用 <block/> 控制標籤來組織程式碼,在 <block/> 上使用 wx:for-items 繫結 logs 資料,並將 logs 資料迴圈展開節點

微信應用號

執行結果如下:

微信應用號

 

4. 手機預覽

開發者工具左側選單欄選擇「專案」,點選「預覽」,掃碼後即可在微信客戶端中體驗。

目前,預覽和上傳功能尚無法實現,需要等待微信官方的下一步更新。

 

如你所見,微信官方給出的開發指南還非常簡單,很多細節、程式碼和功能都沒有明確的展示,所以接下來就到博卡君展示實力的時候啦!開發教程正式開始!

第一章:準備工作

做好準備工作很重要。開發一個微信應用號,你需要提前到微信的官方網站(weixin.qq.com)下載開發者工具。

1. 下載最新微信開發者工具,開啟後你會看到該介面:

微信應用號

2. 點選「新建 web+」專案,隨後出現如下畫面:

微信應用號

3. 該頁面內的各項內容需要注意——

  • AppID:依照官方解釋來填。

  • Appname: 專案最外層資料夾名稱,如你將其命名為「ABC」,則之後的全部專案內容均將儲存在「/ABC/…」目錄下。

  • 本地開發目錄:專案存放在本地的目錄。

注:再次強調,如果你和團隊成員共同開發該專案,則建議你們使用同樣的目錄名稱及本地目錄,以確保協同開發的統一性。如果你之前已有專案,則匯入過程與以上內容近似,不再贅述。

4. 準備工作全部完成後,點選「新建專案」按鈕,彈出框點「確定」。

微信應用號

5. 如上圖所示,此刻,微信開發者工具已經為你自動構建了一個初始的 demo 專案,該專案內包含了一個微信應用專案所需具備的基本內容和框架結構。點選專案名稱(圖中即「cards」)進入該專案,就能看到整個專案的基本架構了:

微信應用號

 

第二章:專案構架

微信目前使用者群體非常龐大,微信推出公眾號以後,火爆程度大家都看得到,也同樣推動著 h5 的高速發展,隨著公眾號業務的需求越來越複雜,應用號現在的到來也是恰到好處。我們團隊具體看了一兩次文件後發現,它提供給開發者的方式也在發生全面的改變,從操作 DOM 轉為操作資料,基於微信提供的一個過橋工具實現很多 h5 在公眾號很難實現的功能,有點類似於 hybrid 開發,不同於 hybrid 開發的方式是:微信開放的介面更為嚴謹,結構必須採用他提供給我們的元件,外部的框架和外掛都不能在這裡使用上,讓開發者完全脫離操作 DOM,開發思想轉變很大。

工欲善其事,必先利其器。理解它的核心功能非常重要,先了解它的整個運作流程。

 

生命週期:

在index.js裡面:

微信應用號

開發者工具上 Console 可以看到:

 微信應用號

在首頁 console 可以看出順序是 App Launch-->App Show-->onload-->onShow-->onReady。

首先是整個 app 的啟動與顯示,app 的啟動在 app.js 裡面可以配置,其次再進入到各個頁面的載入顯示等等。

可以想象到這裡可以處理很多東西了,如載入框之類的都可以實現等等。

路由:

路由在專案開發中一直是個核心點,在這裡其實微信對路由的介紹很少,可見微信在路由方面經過很好的封裝,也提供三個跳轉方法。

wx.navigateTo(OBJECT):保留當前頁面,跳轉到應用內的某個頁面,使用wx.navigateBack可以返回到原頁面。

wx.redirectTo(OBJECT):關閉當前頁面,跳轉到應用內的某個頁面。

wx.navigateBack():關閉當前頁面,回退前一頁面。

這三個基本上使用足夠,在路由方面微信封裝的很好,開發者根本不用去配置路由,往往很多框架在路由方面配置很繁瑣。

元件:

此次微信在元件提供方面也是非常全面,基本上滿足專案需求,故而開發速度非常快,開發前可以認真瀏覽幾次,開發效率會很好。

其它:

任何外部框架以及外掛基本上無法使用,就算原生的 js 外掛也很難使用,因為以前我們的 js 外掛也基本上全部是一操作 dom 的形式存在,而微信應用號此次的架構是不允許操作任何 dom,就連以前我們習慣使用的動態設定的rem.js也是不支援的。

此次微信還提供了 WebSocket,就可以直接利用它做聊天,可以開發的空間非常大。

跟公眾號對比我們發現,開發應用號元件化,結構化,多樣化。新大陸總是充滿著驚喜,更多的彩蛋等著大家來發現。

接下來開始搞一些簡單的程式碼了!

1. 找到專案資料夾,匯入你的編輯器裡面。在這裡,我使用了 Sublime Text 編輯器。你可以根據自己的開發習慣選擇自己喜歡的編輯器。

微信應用號

2. 接下來,你需要根據自己的專案內容調整專案結構。在範例專案中,「card_course」目錄下面主要包含了「tabBar」頁面以及該應用的一些配置檔案。

3. 示例專案的「tabBar」是五個選單按鈕:

微信應用號

4. 找到「app.json」檔案,用來配置這個五個選單。在程式碼行中找到「”tabBar”」:

微信應用號

你可以根據實際專案需求更改,其中:

  • 「Color」是底部字型顏色,「selectedColor」是切換到該頁面高亮顏色,「borderStyle」是切換選單上面的一條線的顏色,「backgroundColor」是底部選單欄背景顏色。文字描述較為抽象,建議你一一除錯並檢視其效果,加深印象。

  • 「“list”」下的程式碼順序必須依次放置,不能隨便更改。

  • 「”pagePath”」之後的檔名內,「.wxml」字尾被隱藏起來了,這是微信開發程式碼中人性化的一點——幫你節約寫程式碼的時間,無須頻繁宣告檔案字尾。

  • 「”iconPath”」為未獲得顯示頁面的圖示路徑,這兩個路徑可以直接是網路圖示。

  • 「”selectedIconPath”」為當前顯示頁面高亮圖示路徑,可以去掉,去掉之後會預設顯示為「”iconPath”」的圖示。

  • 「”Text”」為頁面標題,也可以去掉,去掉之後純顯示圖示,如只去掉其中一個,該位置會被佔用。

注意:微信的底部選單最多支援五欄(五個 icons),所以在你設計微信應用的 UI 和基本架構時就要預先考慮好選單欄的排布。

5. 根據以上程式碼規則,我做好了示例專案的基本架構,供你參考:

微信應用號

微信應用號

6. 「Json」檔案配置好後,「card_course」的基本結構入上圖所示,不需要的子集都可以暫時刪除,缺少的子集則需要你主動新建。刪除子集時記得順帶檢查一下「app.json」裡的相關內容是否已經一併刪除。

注意:我個人建議新建一個「wxml」檔案的同時,把對應的「js」和「wxss」檔案一起新建好,因為微信應用號的配置特點就是解析到一個「wxml」檔案時,會同時在同級目錄下找到同文件名的「js」和「wxss」檔案,所以「js」檔案需及時在「app.json」裡預先配置好。

編寫「wxml」時,根據微信應用號提供的介面編碼即可,大部分就是以前的「div」,而我們現在就用「view」即可。需要用其它子集時,可以根據微信提供的介面酌情選擇。

使用「class」名來設定樣式,「id」名在這裡基本沒有什麼用處。主要操作資料,不操作「dom」。

微信應用號

7. 以上是示例專案首頁的「wxml」編碼。從圖中就可以看出,實現一個頁面程式碼量非常少。

8. 「Wxss」檔案是引入的樣式檔案,你也可以直接在裡面寫樣式,示例中採用的是引入方式:

 微信應用號

9. 修改程式碼後重新整理一次,可以看到未設背景的「view」標籤直接變成了粉色。

注意:修改「wxml」和「wxss」下的內容後,直接 F5 重新整理就能直接看到效果,修改「js」則需點選重啟按鈕才能看到效果。

10. 另外,公共樣式可以在「app.wxss」裡直接引用。

微信應用號

 微信應用號

11. 「Js」檔案需要在「app.json」檔案的「”page”」裡預先配置好。為了專案結構清晰化,我在示例專案中的「index」首頁同級目錄新建其它四個頁面檔案,具體如下:

 微信應用號

經過以上步驟,案例中的五個底部選單就全部配置完畢了。