成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

從前端界面開發(fā)談微信小程序體驗

NoraXie / 2823人閱讀

本文由云+社區(qū)發(fā)表

作者介紹:練小習,2011年加入搜狐,負責搜狐相冊的產(chǎn)品策劃與前端開發(fā)。2015年后加入騰訊 ISUX (社交用戶體驗設計部),目前主要負責騰訊云的UI開發(fā)工作,專注于人機交互,有豐富的UI開發(fā)經(jīng)驗。

這段時間有幸加入了一個關(guān)于微信小程序的項目開發(fā)組,從無到有的根據(jù)文檔自行學習了小程序的開發(fā)過程,前面已經(jīng)有幾位前輩的文章珠玉在前,我這里就先從前端界面的開發(fā)方面談一談小程序以及我所遇到的問題吧。

在結(jié)構(gòu)和樣式方面,小程序提供了一些常用的標簽與控件,比如:

view,小程序主要的布局元素,類似于html標簽的div,你也完全可以像控制div那樣去控制view。

scroll-view,你要滾動內(nèi)容的話,沒必要用view去做overflow,scroll-view提供了更為強大的功能,通過參數(shù)的調(diào)整,你可以控制滾動方向,觸發(fā)的事件等等

swiper,滑塊視圖容器,對于新手來說,再也不用為選用哪個滾動插件傷腦筋了

icon,小程序提供了多種圖標供你直接使用

text,文本,唯一可以通過長按被選中內(nèi)容的一個組件。

progress,進度條

button 按鈕,盡量使用小程序提供給你的幾種樣式參數(shù)

表單以及常用表單組件 :form,input,checkbox,label,picker,radio,slider,switch

各種操作反饋,消息提示框:action-sheet,modal,toast,loading

以及一些媒體組件,video、audio,image,canvas等等

這些東西在幾位前輩的文章里,以及微信的開發(fā)文檔里都有更詳細的介紹,我這里就不再一一介紹。

那么我們就快速的跑通一個小程序的demo先。

在開發(fā)之前你要有微信開發(fā)者工具。

這里我要假設大家有已經(jīng)拿到了內(nèi)測或者公測的資格,因為沒有拿到的話下面的步驟是沒法進行的。

打開以后你會看到這樣的界面,我們選擇小程序進入

這時候就可以創(chuàng)建項目了

填寫你拿到的appid,和自己的項目名稱以及目錄,然后就可以打開自己的項目了。界面如下:

左側(cè)菜單欄就不說了,中間是編譯后的預覽界面,新的開發(fā)者工具已經(jīng)可以做到實時更新,不需要每次都去點編譯了。

右側(cè)是你的項目目錄,其中pages就是你的頁面結(jié)構(gòu)目錄了,每個頁面下面必須要有 js,wxml,wxss這三個文件,缺少任何一個的話都無法上傳預覽。

然后就是那個當前態(tài)的app.json文件,app.json 是對整個小程序的全局配置。我們可以在這個文件中配置小程序是由哪些頁面組成,配置小程序的窗口背景色,配置導航條樣式,配置默認標題。注意該文件不可添加任何注釋。,我們簡單的配置一下:

這里比較好的一點是,navigationbar的背景顏色支持自定義任意顏色了,不再有只能黑白透明的限制,還是很不錯的。

然后我們在頁面p里簡單的寫個Hello World

保存以后預覽界面已經(jīng)立即刷新出來

如果想真機測試(個人建議一定要真機測試,特別是給上下游預覽的時候,pc上的樣式還原程度較差,包括字體等等,畢竟系統(tǒng)不同。),只需要選中項目選項

然后在界面上點擊預覽

下面的三個選項都比較實用,可以根據(jù)需要點選。然后就會彈出可以用注冊過的微信號真機預覽的二維碼,如圖:

這樣一個簡單的小程序demo就完全跑通了。

上面和配置文件app.json平級的還有一個app.js文件,是小程序的腳本代碼。我們可以在這個文件中監(jiān)聽并處理小程序的生命周期函數(shù)、聲明全局變量,在每個page目錄里的js做當前頁面的業(yè)務操作。但是小程序的頁面的腳本邏輯是在JsCore中運行,JsCore是一個沒有窗口對象的環(huán)境,所以不能在腳本中使用window,也無法在腳本中操作組件,所以我們常用的zepto/jquery 等類庫也是無法使用的。

另一個app.wxss文件,這個是全局的樣式,所有的頁面都會調(diào)用到,每個項目目錄下面的wxss是局部樣式文件,不會和其他目錄產(chǎn)生污染,可以放心使用樣式名。

他提供的WXSS(WeiXin Style Sheets)是一套樣式語言,具有 CSS 大部分特性,可以看作一套簡化版的css。

同時為了更適合開發(fā)微信小程序,還對 CSS 進行了擴充以及修改,直接幫我們把適配的一部分工作都做了,比如他的rpx(responsive pixel),可以根據(jù)屏幕寬度進行自適應,規(guī)定屏幕寬為750rpx。如在 iPhone6 上,屏幕寬度為375px,共有750個物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。

這個很贊,很方便。你可以簡單的理解為就是你平時按照750設計稿開發(fā)的流程,只不過你不需要再去做rem的轉(zhuǎn)換和適配工作了,所以小程序的視覺稿,最好也是按照750來出。

但是!在不同的屏幕上多多少少會有一些差異,只能根據(jù)大家的經(jīng)驗去規(guī)避和解決,通過媒體查詢也好,還是其他方法也好。

而且,在wxss里不能引用本地資源,說起來這個坑,滿眼都是淚。那天晚上寫小程序demo的時候,沒有仔細的去查去問,自己悶頭邊寫邊預覽,突然真機預覽就不行了,毫無預兆,我也完全不會想到是一個背景圖造成的問題,折騰了大半夜終于知道了問題所在,于是很開心的把圖片都轉(zhuǎn)換成base64,心里想著這下沒問題了吧?結(jié)果預覽上傳又失敗了,繼續(xù)折騰了下半夜,才知道小程序?qū)φ麄€包的大小有嚴格要求,不可以超過1M,最后把所有的靜態(tài)資源都放到了騰訊云的cdn,才算解決了這個問題。所以如果你要寫背景圖,那么需要引用一個線上的圖片在這里極不推薦使用base64!極不推薦使用base64!極不推薦使用base64!

另外一個應用同時只能打開5個頁面,當已經(jīng)打開了5個頁面之后,wx.navigateTo不能正常打開新頁面。請避免多層級的交互方式。

在開發(fā)的過程中也不可避免的遇到了一些小坑,舉個例子,比如一個簡單的switch控件,你可以通過查看元素的方式輕易得知他的自身樣式

那么我要做一個簡單的和文本垂直劇中對齊,從以往的css經(jīng)驗,只要vertical-align: middle就可以輕松解決了,在本地預覽的時候也是這樣好好的

可是在真機測試的時候,各種設備就開始出現(xiàn)偏差了

然后簡單的審查元素之后發(fā)現(xiàn)問題在于

這個控件是存在空白區(qū)域的,根據(jù)設備,屏幕大小的不一,空白區(qū)域大小也不一致。

受于時間緊迫,可翻閱文檔有限,感覺是因為默認的行高原因,于是我只好發(fā)揮老司機的狡猾本質(zhì),可以通過行高或者overflow的控制,干掉多余的部分,最終真機界面顯示還算統(tǒng)一

如果你要按照像素級別設計稿來做小程序開發(fā)的話,控件的小差異還是需要自己來做一些控制(也有可能從根本上就是我個人用錯了方法或者理解錯了,鑒于文檔太少,以后開發(fā)者多了大家會有更清晰的認識。)

還有另一個遇到的問題,就是小程序?qū)?image 的默認渲染,這是通過工具查看默認圖像的樣式

經(jīng)過多方打聽發(fā)現(xiàn)小程序的image是按照background-image來實現(xiàn)的,所以所有圖像會得到一個初始寬高320 240,而且無法通過auto重置,只可以通過具體的值來重寫。

好在微信提供了3種縮放模式,9種裁剪模式,在大多數(shù)場景可以滿足我們對圖片的控制:

例如原圖:

scaleToFill 模式

不保持縱橫比縮放圖片,使圖片完全適應

aspectFit

保持縱橫比縮放圖片,使圖片的長邊能完全顯示出來

aspectFill

保持縱橫比縮放圖片,只保證圖片的短邊能完全顯示出來

top

不縮放圖片,只顯示圖片的頂部區(qū)域

bottom

不縮放圖片,只顯示圖片的底部區(qū)域

center

不縮放圖片,只顯示圖片的中間區(qū)域

left

不縮放圖片,只顯示圖片的左邊區(qū)域

right

不縮放圖片,只顯示圖片的右邊邊區(qū)域

top left

不縮放圖片,只顯示圖片的左上邊區(qū)域

top right

不縮放圖片,只顯示圖片的右上邊區(qū)域

bottom left

不縮放圖片,只顯示圖片的左下邊區(qū)域

bottom right

不縮放圖片,只顯示圖片的右下邊區(qū)域

如果你有更嚴格的圖片設計展示方式,那么可以嘗試用一些特殊的方式去控制圖像的寬高吧。

還有小程序的button控件,

他的初始樣式里并沒有border,所以我費盡心思也沒能把他重寫為一個無邊無背景的設計形式,最終為了滿足設計稿,個別語義化為按鈕的元素,我是用其他更可控的元素來實現(xiàn)的,比如這個界面的發(fā)送圖片按鈕

但是到后來才知道button是通過after來寫的樣式,開發(fā)者工具的調(diào)試里完全看不到這個after(┬_┬).....

除了這些UI開發(fā)上的體會,大家也都知道,小程序誕生就不是為了展示,他不適合做純展示型的東西,主要是做一些功能型的應用。

而微信所提供的小程序現(xiàn)有的SDK和DEMO,缺乏對服務端的支持,依賴開發(fā)者逐個模塊搭建服務;而且必須通過HTTPS完成與服務端通信,依賴開發(fā)者自行完成證書申請部署;鑒權(quán)流程安全性要求高,開發(fā)者高效安全的完成會話管理難度會比較大;提供了WebSocket長連接通信的客戶端API,但缺乏服務端配套支持,開發(fā)者自行實現(xiàn)難度還是較大的。并且具備快速傳播,流量突增的特點,要求架構(gòu)具備彈性伸縮能力。

此文已由作者授權(quán)騰訊云+社區(qū)發(fā)布 騰訊云祝您元旦快樂~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/100537.html

相關(guān)文章

  • 前端界面開發(fā)談微信小程序體驗

    摘要:在開發(fā)之前你要有微信開發(fā)者工具。同時為了更適合開發(fā)微信小程序,還對進行了擴充以及修改,直接幫我們把適配的一部分工作都做了,比如他的,可以根據(jù)屏幕寬度進行自適應,規(guī)定屏幕寬為。 本文由云+社區(qū)發(fā)表 這段時間有幸加入了一個關(guān)于微信小程序的項目開發(fā)組,從無到有的根據(jù)文檔自行學習了小程序的開發(fā)過程,前面已經(jīng)有幾位前輩的文章珠玉在前,我這里就先從前端界面的開發(fā)方面談一談小程序以及我所遇到的問題吧...

    hellowoody 評論0 收藏0
  • 新增線下、APP、公眾號多處入口,小程序會再火起來么?(內(nèi)有福利)

    摘要:之前開發(fā)者們追捧小程序的重要原因就是在于認為這可能是下一個微信公眾號體量的流量入口,因為大家都想從微信的億多用戶中收獲自己的一部分用戶。小結(jié)來說,還是看好這波能力開放所給小程序生態(tài)帶來的新用戶。 推薦理由:前段時間部分開發(fā)者不太看好小程序,認為小程序過于克制,不支持用戶留存,也不支持分享到朋友圈,線上二維碼等為小程序?qū)Я鳎欢@次開放個人開發(fā)者注冊,還會不會再次點燃開發(fā)者們的激情了;今天...

    wangym 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<