編輯名片有兩條路徑,分為新增名片流程與修改名片流程。用戶手填新增名片流程:首先跳轉(zhuǎn)到我們的新增名片頁面 1 需要傳遞用戶的當(dāng)前 userId,wx.navigateTo 帶值跳轉(zhuǎn)。Manual 為 true 設(shè)置用戶走的是新增路線。新增 ...
微信目前用戶群體非常龐大,微信推出公眾號以后,火爆程度大家都看得到,也同樣推動著 h5 的高速發(fā)展,隨著公眾號業(yè)務(wù)的需求越來越復(fù)雜,應(yīng)用號現(xiàn)在的到來也是恰到好處。我們團(tuán)隊(duì)具體看了一兩次文檔后發(fā)現(xiàn),它提供給開發(fā)者的方式也在發(fā)生全面的改變,從操作 DOM 轉(zhuǎn)為操作數(shù)據(jù),基于微信提供的一個(gè)過橋工具實(shí)現(xiàn)很多 h5 在公眾號很難實(shí)現(xiàn)的功能,有點(diǎn)類似于 hybrid 開發(fā),不同于 hybrid 開發(fā)的方式是:微信開放的接口更為嚴(yán)謹(jǐn),結(jié)構(gòu)必須采用他提供給我們的組件,外部的框架和插件都不能在這里使用上,讓開發(fā)者完全脫離操作 DOM,開發(fā)思想轉(zhuǎn)變很大。
工欲善其事,必先利其器。理解它的核心功能非常重要,先了解它的整個(gè)運(yùn)作流程。
生命周期:
在index.js里面:
開發(fā)者工具上 Console 可以看到:
在首頁 console 可以看出順序是 App Launch-->App Show-->onload-->onShow-->onReady。
首先是整個(gè) app 的啟動與顯示,app 的啟動在 app.js 里面可以配置,其次再進(jìn)入到各個(gè)頁面的加載顯示等等。
可以想象到這里可以處理很多東西了,如加載框之類的都可以實(shí)現(xiàn)等等。
路由:
路由在項(xiàng)目開發(fā)中一直是個(gè)核心點(diǎn),在這里其實(shí)微信對路由的介紹很少,可見微信在路由方面經(jīng)過很好的封裝,也提供三個(gè)跳轉(zhuǎn)方法。
* wx.navigateTo(OBJECT):保留當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁面,使用wx.navigateBack可以返回到原頁面。
* wx.redirectTo(OBJECT):關(guān)閉當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁面。
* wx.navigateBack():關(guān)閉當(dāng)前頁面,回退前一頁面。
這三個(gè)基本上使用足夠,在路由方面微信封裝的很好,開發(fā)者根本不用去配置路由,往往很多框架在路由方面配置很繁瑣。
組件:
此次微信在組件提供方面也是非常全面,基本上滿足項(xiàng)目需求,故而開發(fā)速度非常快,開發(fā)前可以認(rèn)真瀏覽幾次,開發(fā)效率會很好。
其它:
任何外部框架以及插件基本上無法使用,就算原生的 js 插件也很難使用,因?yàn)橐郧拔覀兊?js 插件也基本上全部是一操作 dom 的形式存在,而微信應(yīng)用號此次的架構(gòu)是不允許操作任何 dom,就連以前我們習(xí)慣使用的動態(tài)設(shè)置的 rem.js 也是不支持的。
此次微信還提供了 WebSocket,就可以直接利用它做聊天,可以開發(fā)的空間非常大。
跟公眾號對比我們發(fā)現(xiàn),開發(fā)應(yīng)用號組件化,結(jié)構(gòu)化,多樣化。新大陸總是充滿著驚喜,更多的彩蛋等著大家來發(fā)現(xiàn)。
接下來開始搞一些簡單的代碼了!
* 找到項(xiàng)目文件夾,導(dǎo)入你的編輯器里面。在這里,我使用了 Sublime Text 編輯器。你可以根據(jù)自己的開發(fā)習(xí)慣選擇自己喜歡的編輯器。
* 接下來,你需要根據(jù)自己的項(xiàng)目內(nèi)容調(diào)整項(xiàng)目結(jié)構(gòu)。在范例項(xiàng)目中,「card_course」目錄下面主要包含了「tabBar」頁面以及該應(yīng)用的一些配置文件。
* 示例項(xiàng)目的「tabBar」是五個(gè)菜單按鈕:
* 找到「app.json」文件,用來配置這個(gè)五個(gè)菜單。在代碼行中找到「tabBar」:
* 你可以根據(jù)實(shí)際項(xiàng)目需求更改,其中:
* 「Color」是底部字體顏色,「selectedColor」是切換到該頁面高亮顏色,「borderStyle」是切換菜單上面的一條線的顏色,「backgroundColor」是底部菜單欄背景顏色。文字描述較為抽象,建議你一一調(diào)試并查看其效果,加深印象。
* 「“list”」下的代碼順序必須依次放置,不能隨便更改。
* 「”pagePath”」之后的文件名內(nèi),「.wxml」后綴被隱藏起來了,這是微信開發(fā)代碼中人性化的一點(diǎn)——幫你節(jié)約寫代碼的時(shí)間,無須頻繁聲明文件后綴。
* 「”iconPath”」為未獲得顯示頁面的圖標(biāo)路徑,這兩個(gè)路徑可以直接是網(wǎng)絡(luò)圖標(biāo)。
* 「”selectedIconPath”」為當(dāng)前顯示頁面高亮圖標(biāo)路徑,可以去掉,去掉之后會默認(rèn)顯示為「”iconPath”」的圖標(biāo)。
* 「”Text”」為頁面標(biāo)題,也可以去掉,去掉之后純顯示圖標(biāo),如只去掉其中一個(gè),該位置會被占用。
注意:微信的底部菜單最多支持五欄(五個(gè) icons),所以在你設(shè)計(jì)微信應(yīng)用的 UI 和基本架構(gòu)時(shí)就要預(yù)先考慮好菜單欄的排布。
* 根據(jù)以上代碼規(guī)則,我做好了示例項(xiàng)目的基本架構(gòu),供你參考:
* 「Json」文件配置好后,「card_course」的基本結(jié)構(gòu)入上圖所示,不需要的子集都可以暫時(shí)刪除,缺少的子集則需要你主動新建。刪除子集時(shí)記得順帶檢查一下「app.json」里的相關(guān)內(nèi)容是否已經(jīng)一并刪除。
注意:我個(gè)人建議你新建一個(gè)「wxml」文件的同時(shí),把對應(yīng)的「js」和「wxss」文件一起新建好,因?yàn)槲⑿艖?yīng)用號的配置特點(diǎn)就是解析到一個(gè)「wxml」文件時(shí),會同時(shí)在同級目錄下找到同文件名的「js」和「wxss」文件,所以「js」文件需及時(shí)在「app.json」里預(yù)先配置好。
編寫「wxml」時(shí),根據(jù)微信應(yīng)用號提供的接口編碼即可,大部分就是以前的「div」,而我們現(xiàn)在就用「view」即可。需要用其它子集時(shí),可以根據(jù)微信提供的接口酌情選擇。
使用「class」名來設(shè)置樣式,「id」名在這里基本沒有什么用處。主要操作數(shù)據(jù),不操作「dom」。
* 以上是示例項(xiàng)目首頁的「wxml」編碼。從圖中就可以看出,實(shí)現(xiàn)一個(gè)頁面代碼量非常少。
* 「Wxss」文件是引入的樣式文件,你也可以直接在里面寫樣式,示例中采用的是引入方式:
* 修改代碼后刷新一次,可以看到未設(shè)背景的「view」標(biāo)簽直接變成了粉色。
注意:修改「wxml」和「wxss」下的內(nèi)容后,直接 F5 刷新就能直接看到效果,修改「js」則需點(diǎn)擊重啟按鈕才能看到效果。
* 另外,公共樣式可以在「app.wxss」里直接引用。
* 「Js」文件需要在「app.json」文件的「”page”」里預(yù)先配置好。為了項(xiàng)目結(jié)構(gòu)清晰化,我在示例項(xiàng)目中的「index」首頁同級目錄新建其它四個(gè)頁面文件,具體如下:
經(jīng)過以上步驟,案例中的五個(gè)底部菜單就全部配置完畢了。
工作日 8:30-12:00 14:30-18:00
周六及部分節(jié)假日提供值班服務(wù)