天天看點

微信應用号開發教程

關鍵字:微信 應用号 開發教程

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

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

我們暫時以一款簡單的第三方工具的執行個體,來示範一下開發過程吧——

序言

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

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

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」首頁同級目錄建立其它四個頁面檔案,具體如下:

微信應用号開發教程

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

繼續閱讀