㈠ 微信小程序架構篇
一、小程序架構
每個小程序的結構都有兩個主要部分構成:主體部分+各個頁面。類似於許多框架,主體部分主要用於核心的配置,各個頁面主要用於不同業務場景。
1.1、主體部分主要由3個文件構成
1)app.js:小程序邏輯,初始化APP
2)app.json:小程序配置,比如導航、窗口、頁面http請求跳轉等
3)app.wxss:公共樣式配置
主體配置完成之後,就是對應業務開發了,也就是開發者最常操作的頁面。小程序頁面設計基本上也是遵循MVC結構進行構建。
1.2、頁面由4個文件構成
1)js:頁面邏輯,相當於控制層(C);也包括部分的數據(M)
2)wxml:頁面結構展示,相當於視圖層(V)
3)wxss:頁面樣式表,純前端,用於輔助wxml展示
4)json:頁面配置,配置一些頁面展示的數據,充當部分的模型(M)
二、配置app.json
app.json
全局配置頁面文件的路徑、窗口表現、設置網路超時時間、設置多tab等。
pages
接受一個數組,每一項都是字元串,來指定小程序由哪些頁面組成
window
用於設置小程序的狀態欄、導航條、標題、窗口背景色。
tabBar
通過tabBar配置項指定tab欄的表現,以及tab切換時顯示的對應頁面。tabBar配置數組,只能配置最少2個、最多5個tab,tab按數組的順序排序。
networkTimeout
可以設置各種網路請求的超時時間。
debug:true/false
可以在開發者工具中開啟debug模式,在開發者工具的控制檯面板,調試信息以info的形式給出,其信息有Page的注冊,頁面路由,數據更新,事件觸發。可以幫助開發者快速定位一些常見的問題
page.json
每一個小程序頁面也可以使用.json文件來對本頁面的窗口表現進行配置。頁面的哦誒址比app.json全局配置簡單的多,只是設置app.json中的window配置項的內容,頁面中配置項會覆蓋app.json的window中相同的配置項。
㈡ 微信小程序設計指南 微信小程序ui設計規范匯總
微信小程序ui設計規范匯總:
微信小程序是一種全新的應用形態,微信小程序平台不需要下載安裝即可使用應用的平台,微信小程序實現了應用觸手可及的夢想,用戶掃一掃或者搜一下即可打開應用。
也體現了用完即走的理念,用戶不用關心是否安裝太多應用的問題。應用將無處不在,隨時可用,但又無需安裝卸載。
概要
基於微信小程序輕快的特點,我們擬定了小程序界面設計指南和建議。 設計指南建立在充分尊重用戶知情權與操作權的基礎之上。旨在微信生態體系內,建立友好、高效、一致的用戶體驗,同時最大程度適應和支持不同需求,實現用戶與小程序服務方的共贏。
友好禮貌
為了避免用戶在微信中使用小程序服務時,注意力被周圍復雜環境干擾,小程序在設計時應該注意減少無關的設計元素對用戶目標的干擾,禮貌地向用戶展示程序提供的服務,友好地引導用戶進行操作。
重點突出
每個頁面都應有明確的重點,以便於用戶每進入一個新頁面的時候都能快速地理解頁面內容,在確定了重點的前提下,應盡量避免頁面上出現其他干擾項影響用戶的決策和操作。
反例示意
此頁面的主題是查詢,卻添加了諸多與查詢不相關的業務入口,與用戶的預期不符,易造成用戶的迷失。
糾正示意
去掉任何與用戶目標不相關的內容,明確頁面主題,在技術和頁面控制項允許的前提下提供有助於用戶目標的幫助內容,比如最近搜索詞,常用搜索詞等。
反例示意
操作沒有主次,讓用戶無從選擇
糾正示意
首先要避免並列過多操作讓用戶選擇,在不得不並列多個操作時,需區分操作主次,減輕用戶的選擇難度。
流程明確
為了讓用戶順暢地使用頁面,在用戶進行某一個操作流程時,應避免出現用戶目標流程之外的內容而打斷用戶。
反例示意
用戶本打算進行搜索,在進入頁面時卻被突如其來的抽獎彈窗所打斷;對於抽獎沒有興趣的用戶是非常不友好的干擾; 而即便有部分用戶確實被誘人的抽獎活動所吸引,離開主流程去抽獎之後可能就遺忘了原本的目標,進而失去了對產品真正價值的利用和認識。
清晰明確
一旦用戶進入我們的小程序頁面,我們就有責任和義務清晰明確地告知用戶身在何處、又可以往何處去,確保用戶在頁面中游刃有餘地穿梭而不迷路,這樣才能為用戶提供安全的愉悅的使用體驗。
導航明確,來去自如
導航是確保用戶在網頁中瀏覽跳轉時不迷路的最關鍵因素。導航需要告訴用戶,我在哪,我可以去哪,如何回去等問題。首先在微信系統內的所有小程序的全部頁面,均會自帶微信提供的導航欄,統一解決我在哪,如何回去的問題。在微信層級導航保持體驗一致,有助於用戶在微信內形成統一的體驗和交互認知,無需在各小程序和微信切換中新增學習成本或改變使用習慣。
微信導航欄
微信導航欄,直接繼承於客戶端,除導航欄顏色之外,開發者無需亦不可對其中的內容進行自定義。但開發者需要規定小程序各個頁面的跳轉關系,讓導航系統能夠以合理的方式工作。
微信導航欄分為導航區域、標題區域以及操作區域。其中導航區控製程序頁面進程。目前導航欄分深淺兩種基本配色。
導航區(iOS)
導航區通常只有一個操作,即返回上一級界面。
導航區(Android)
同iOS一樣,導航區也只有一個返回上一級頁面的操作,而點擊安卓手機自帶的硬體返回鍵也起到相同作用。
微信導航欄自定義顏色規則(iOS和Android)
小程序導航欄支持基本的背景顏色自定義功能,選擇的顏色需要在滿足可用性前提下,和諧搭配微信提供的兩套主導航欄圖標。建議參考以下選色效果:
選色方案示例
頁面內導航
開發者可根據自身功能設計需要在頁面內添加自有導航。並保持不同頁面間導航一致。但是受限於手機屏幕尺寸的限制,小程序頁面的導航應盡量簡單,若僅為一般線性瀏覽的頁面建議僅使用微信導航欄即可。
開發者可選擇小程序頁面添加標簽分頁(Tab)導航。標簽分頁欄可固定在頁面頂部或者底部,便於用戶在不同的分頁間做切換。標簽數量不得少於2個,最多不得超過5個,為確保點擊區域,建議標簽數量不超過4項。一個頁面也不應出現一組以上的標簽分頁欄。
其中小程序首頁可選擇微信提供的原生底部標簽分頁樣式,該樣式僅供小程序首頁使用。開發時可自定義圖標樣式、標簽文案以及文案顏色等,具體設置項可參考開發文檔。
頂部標簽分頁欄顏色可自定義。在自定義顏色選擇中,務必注意保持分頁欄標簽的可用性、可視性和可操作性。
減少等待,反饋及時
頁面的過長時間的等待會引起用戶的不良情緒,使用微信小程序項目提供的技術已能很大程度縮短等待時間。即便如此,當不可避免的出現了載入和等待的時候,需要予以及時的反饋以舒緩用戶等待的不良情緒。
啟動頁載入
小程序啟動頁是小程序在微信內容一定程度上展現品牌特徵的頁面之一。本頁面將突出展示小程序品牌特徵和載入狀態。啟動頁除品牌標志(Logo)展示外,頁面上的其他所有元素如載入進度指示,均由微信統一提供且不能更改,無需開發者開發。
頁面下拉刷新載入
在微信小程序內,微信提供標準的頁面下拉刷新載入能力和樣式。
開發者可自定義需要通過下拉交互完成刷新的頁面,此類交互微信將提供標准能力和樣式。在樣式上,刷新圖標與下拉標示配色已捆綁,分為深淺兩套方案,開發者在使用時,應注意頭部文字、下拉標識與刷新圖標的和諧統一。當用戶在該類頁面做出下拉交互時,出現微信小程序頁面標准載入動畫。開發者無需自行開發樣式
深淺兩套下拉樣式
微信下拉提示用於給用戶明確的小程序歸屬者,防止造假與作弊。此處標示提供深淺兩套方案,文字顏色不可自定義,開發者在自定義背景色時,應注意保證下拉標示的辨識度。iOS和Android配色方案相同如下展示。
微信下拉標示錯誤使用案例
請避免以下錯誤使用情況,確保信息的可見性和頁面的可用性
頁面內載入反饋
開發者可在小程序里自定義頁面內容的載入樣式。建議不管是使用在局部還是全體,自定義載入樣式都應該盡可能簡潔,並使用簡單動畫告知用戶載入過程。 開發者也可以使用微信提供的,統一的頁面載入樣式,如圖中例所示。
模態載入
模態的載入樣式將覆蓋整個頁面的,由於無法明確告知具體載入的位置或內容將可能引起用戶的焦慮感,因此應謹慎使用。除了在某些全局性操作下不要使用模態的載入。
局部載入反饋
即只在觸發載入的頁面局部進行反饋,這樣的反饋機制更加有針對性,頁面改動小,是微信推薦的反饋方式。例如:
載入反饋注意事項
若載入時間較長,應提供取消操作,並使用進度條顯示載入的進度。
載入過程中,應保持動畫效果 ; 無動畫效果的載入很容易讓人產生該界面已經卡死的錯覺。
不要在同一個頁面同時使用超過1個載入動畫。
結果反饋
除了在用戶等待的過程中需予以及時反饋外,對操作的結果也需要予以明確反饋。根據實際情況,可選擇不同的結果反饋樣式。對於頁面局部的操作,可在操作區域予以直接反饋,對於頁面級操作結果,可使用彈出式提示(Toast)、模態對話框或結果頁面展示。
頁面局部操作結果反饋
對於頁面局部的操作,可在操作區域予以直接反饋,例如點擊多選控制項前後如下圖。對於常用控制項,微信設計中心將提供控制項庫,其中的控制項將提供完整操作反饋。
頁面全局操作結果彈出式提示(Toast)
彈出式提示(Toast)適用於輕量級的成功提示,1.5秒後自動消失,並不打斷流程,對用戶影響較小,適用於不需要強調成功狀態的操作提醒。特別注意該形式不適用於錯誤提醒。
頁面全局操作結果模態對話框
對於需要用戶明確知曉的操作結果狀態可通過模態對話框來提示,並可附帶下一步操作指引。
頁面全局操作結果結果頁
對於操作結果已經是當前流程的終結的情況,可使用操作結果頁來反饋。這種方式最為強烈和明確的告知用戶操作已經完成,並可根據實際情況給出下一步操作的指引。
異常可控,有路可退
在設計任何的任務和流程時,異常狀態和流程往往容易被忽略,而這些異常場景往往是用戶最為沮喪和需要幫助的時候,因此需要格外注意異常狀態的設計,在出現異常時予以用戶必要的狀態提示,並告知解決方案,使其有路可退。
要杜絕異常狀態下,用戶莫名其妙又無處可去,卡在某一個頁面的情況。2.2中所提到的彈窗和結果頁面都可作為異常狀態的提醒方式。除此之外,在表單頁面中尤其是表單項較多的頁面中,還應明確指出出錯項目,以便用戶修改。
異常狀態表單出錯
表單報錯,在表單頂部告知錯誤原因,並標識出錯誤欄位提示用戶修改
便捷優雅
從PC時代的物理鍵盤滑鼠到移動端時代手指,雖然輸入設備極大精簡,但是手指操作的准確性卻大大不如鍵盤滑鼠精確。為了適應這個變化,需要開發者在設計過程中充分利用手機特性,讓用戶便捷優雅的操控界面。
減少輸入
由於手機鍵盤區域小且密集,輸入困難的同時還易引起輸入錯誤,因此在設計小程序頁面時因盡量減少用戶輸入,利用現有介面或其他一些易於操作的選擇控制項來改善用戶輸入的體驗。
減少輸入,巧用介面
例如下圖中,在添加銀行卡時,採用攝像頭識別介面來幫助用戶輸入。除此之外微信團隊還對外開放例如地理位置介面等多種微信小程序介面 ,充分利用這些介面將大大提高用戶輸入的效率和准確性,進而優化體驗。
除了利用介面外,在不得不讓用戶進行手動輸入時,應盡量讓用戶做選擇而不是鍵盤輸入。一方面,回憶易於記憶,讓用戶在有限的選項中做選擇通常來說是容易於完全靠記憶輸入;另一方面,仍然是考慮到手機鍵盤密集的單鍵輸入極易造成輸入錯誤。
例如圖中,在用戶搜索時提供搜索歷史快捷選項將幫助用戶快速進行搜索,而減少或避免不必要是鍵盤輸入。
避免誤操作
因為在手機上我們通過手指觸摸屏幕來操控界面,手指的點擊精確度遠不如滑鼠,因此在設計頁面上需點擊的控制項時,需要充分考慮到其熱區面積,避免由於可點擊區域過小或過於密集而造成誤操作。當簡單的將原本在電腦屏幕上使用的界面不做任何適配直接移植到手機上時,往往就容易出現這樣的問題。由於手機屏幕解析度各不相同,因此最適宜點擊像素尺寸也不完全一致,但換算成物理尺寸後大致是在7mm-9mm之間。在微信提供的標准組件庫中,各種控制項元素均已考慮到了頁面點擊效果以及不同屏幕的適配,因此再次推薦使用或模仿標准控制項尺寸進行設計。
利用介面提升性能
微信設計中心已推出了一套網頁標准控制項庫,包括sketch設計控制項庫和Photoshop設計控制項庫,後續還將完善小程序組件,這些控制項都已充分考慮了移動端頁面的特點,能夠保證其在移動端頁面上的可用性和操作性能;同時微信開發團隊也在不斷完善和擴充微信小程序介面,並提供微信公共庫,利用這些資源不但能夠為用戶提供更加快捷的服務,而且對頁面性能的提高有極大作用,無形之中提升了用戶體驗。
統一穩定
除了以上所提到的種種原則,建議接入微信的小程序還應該時刻注意不同頁面間的統一性和延續性,在不同的頁面盡量使用一致的控制項和交互方式。
統一的頁面體驗和有延續性的界面元素都將幫助用最少的學習成本達成使用目標,減輕頁面跳動所造成的不適感。正因如此,小程序可根據需要使用微信提供的標准控制項,以達到統一穩定的目的。
視覺規范
為方便設計師進行設計,微信提供一套可供Web設計和小程序使用的基礎控制項庫;同時提供方便開發者調用的資源。
字體規范
微信內字體的使用與所運行的系統字體保持一致,常用字型大小為20, 18, 17, 16,14 13, 11(pt),使用場景具體如下:
字體顏色
主內容 Black 黑色,次要內容 Grey 灰色;時間戳與表單預設值 Light 灰色;大段的說明內容而且屬於主要內容用 Semi 黑;
藍色為鏈接用色,綠色為完成字樣色,紅色為出錯用色 Press與 Disable狀態分別降低透明度為20%與10%;
列表視覺規范
表單輸入視覺規范
按鈕使用原則
列表外按鈕上文字標准
按鈕高度為44px下使用: 顏色 #000000 / #353535 字型大小 18pt
可點狀態下文字調整透明度為60%
不可點狀態下文字調整透明度為30%
列表外按鈕上文字標准
按鈕高度為25px下使用: 顏色 #000000 / #353535 字型大小 14pt
頁面線性按鈕上文字標准
按鈕高度為35px下使用: 顏色 #09BB07 / #353535 字型大小 16pt
圖標使用原則