1. 程式人生 > >與張小龍同行:微信小程式開發

與張小龍同行:微信小程式開發

與張小龍同行:微信小程式開發

概要

基於微信小程式輕快的特點,我們擬定了小程式介面設計指南和建議。 設計指南建立在充分尊重使用者知情權與操作權的基礎之上。旨在微信生態體系內,建立友好、高效、一致的使用者體驗,同時最大程度適應和支援不同需求,實現使用者與小程式服務方的共贏。

友好禮貌

為了避免使用者在微信中使用小程式服務時,注意力被周圍複雜環境干擾,小程式在設計時應該注意減少無關的設計元素對使用者目標的干擾,禮貌地向用戶展示程式提供的服務,友好地引導使用者進行操作。

重點突出

每個頁面都應有明確的重點,以便於使用者每進入一個新頁面的時候都能快速地理解頁面內容。在確定了重點的前提下,應儘量避免頁面上出現其它與使用者的決策和操作無關的干擾因素。

案例示意1

案例示意2

流程明確

為了讓使用者順暢地使用頁面,在使用者進行某一個操作流程時,應避免出現使用者目標流程之外的內容而打斷使用者。 

清晰明確

一旦使用者進入我們的小程式頁面,我們就有責任和義務清晰明確地告知使用者身在何處、又可以往何處去,確保使用者在頁面中游刃有餘地穿梭而不迷路,這樣才能為使用者提供安全且愉悅的使用體驗。

導航明確,來去自如

導航是確保使用者在網頁中瀏覽跳轉時不迷路的最關鍵因素。導航需要告訴使用者,當前在哪,可以去哪,如何回去等問題。微信在小程式內現不提供統一導航欄樣式,開發者可根據需要自行設計小程式首頁和次級頁面介面導航。建議所有的次級頁面左上角提供返回上一級頁面操作。此外,微信iOS使用者還可通過介面邊緣向右滑動操作,返回上一級小程式或微信頁面。安卓使用者可通過物理返回鍵達到同樣目的。

小程式選單

小程式的所有頁面,包括小程式內嵌網頁和外掛,微信都會在其右上角放置官方小程式選單,樣式如圖。開發者不可對其內容自定義,但可選擇深淺兩種基本配色以適應頁面設計風格。 官方小程式選單將放置在介面固定位置,開發者在設計介面時請預留出該區域空間,若需要在此區域附近放置可互動元素,要特別注意互動事件是否會衝突,操作是否容易被使用 

小程式選單深淺配色方案(iOS和Android)

開發者可在滿足可用性的前提下,從微信提供的深淺兩套配色的小程式選單中選擇合適的方案,以適應小程式頁面設計風格。 

頁面內導航

開發者可根據自身功能設計需要在頁面內新增自有導航。並保持不同頁面間導航一致,指向清晰,有路可退。受限於手機螢幕尺寸的限制,小程式頁面的導航應儘量簡單。建議開發者設計的自有導航樣式與微信官方小程式選單樣式保持一定差異,以便區分。 

開發者可為小程式頁面新增標籤分頁(Tab)導航。標籤分頁欄可固定在頁面頂部或者底部,便於使用者在不同的分頁間做切換。標籤數量不得少於2個,最多不得超過5個,為確保點選區域,建議標籤數量不超過4項。一個頁面也不應出現一組以上的標籤分頁欄。

其中小程式首頁可選擇微信提供的原生底部標籤分頁樣式,該樣式僅供小程式首頁使用。開發時可自定義圖示樣式、標籤文案以及文案顏色等,具體設定項如圖示尺寸等參考可參考開發文件和WeUI基礎控制元件庫。

頂部標籤分頁欄顏色可自定義。在自定義顏色選擇中,務必注意保持分頁欄標籤的可用性、可視性和可操作性。

減少等待,反饋及時

頁面的過長時間的等待會引起使用者的不良情緒,使用微信小程式專案提供的技術已能很大程度縮短等待時間。即便如此,當不可避免的出現了載入和等待的時候,需要予以及時的反饋以舒緩使用者等待的不良情緒。

啟動頁載入

小程式啟動頁是小程式在微信內一定程度上展現品牌特徵的頁面之一。本頁面將突出展示小程式品牌特徵和載入狀態。啟動頁除品牌標誌(Logo)展示外,頁面上的其他所有元素如載入進度指示,均由微信統一提供且不能更改,無需開發者開發。

頁面下拉重新整理載入

在微信小程式內,微信提供標準的頁面下拉重新整理載入能力和樣式,開發者無需自行開發。

頁面內載入反饋

開發者可在小程式裡自定義頁面內容的載入樣式。建議不管是使用在區域性還是全域性載入,自定義載入樣式都應該儘可能簡潔,並使用簡單動畫告知使用者載入過程。

模態載入

模態的載入樣式將覆蓋整個頁面的,由於無法明確告知具體載入的位置或內容將可能引起使用者的焦慮感,因此應謹慎使用。除了在某些全域性性操作下不要使用模態的載入。

區域性載入反饋

區域性載入反饋即只在觸發載入的頁面區域性進行反饋,這樣的反饋機制更加有針對性,頁面跳動小,是微信推薦的反饋方式。例如:

全域性載入反饋

開發者可以參考圖中樣式,使用標題欄提示載入小程式頁面內容的過程。例如: 

載入反饋注意事項

  • 若載入時間較長,應提供取消操作,並使用進度條顯示載入的進度。
  • 載入過程中,應保持動畫效果 ; 無動畫效果的載入很容易讓人產生該介面已經卡死的錯覺。
  • 不要在同一個頁面同時使用超過1個載入動畫。

結果反饋

除了在使用者等待的過程中需予以及時反饋外,對操作的結果也需要予以明確反饋。根據實際情況,可選擇不同的結果反饋樣式。對於頁面區域性的操作,可在操作區域予以直接反饋,對於頁面級操作結果,可使用彈出式提示、模態對話方塊或結果頁面展示。

頁面區域性操作結果反饋

對於頁面區域性的操作,可在操作區域予以直接反饋,例如點選多選控制元件前後如下圖。對於常用控制元件,微信設計中心將提供控制元件庫,其中的控制元件都已提供完整操作反饋。

頁面全域性操作結果——圖示型彈出提示

圖示型彈出提示適用於輕量級的成功提示,1.5秒後自動消失,並不打斷流程,對使用者影響較小,適用於不需要強調的操作提醒,例如成功提示。特別注意該形式不適用於錯誤提示,因為錯誤提示需明確告知使用者,因而不適合使用一閃而過的彈出式提示。

頁面全域性操作結果——文字型彈出提示

文字型彈出提示適用於需要輕量化地用文字解釋當前狀態或提醒不嚴重的錯誤。1.5秒後自動消失,不打斷流程,對使用者影響較小。

頁面全域性操作結果——模態對話方塊

對於需要使用者明確知曉的操作結果狀態可通過模態對話方塊來提示,並可附帶下一步操作指引。

頁面全域性操作結果—結果頁

對於操作結果已經是當前流程的終結的情況,可使用操作結果頁來反饋。這種方式最為強烈和明確的告知使用者操作已經完成,並可根據實際情況給出下一步操作的指引。

異常可控,有路可退

在設計任何的任務和流程時,異常狀態和流程往往容易被忽略,而這些異常場景往往是使用者最為沮喪和需要幫助的時候,因此需要格外注意異常狀態的設計,在出現異常時予以使用者必要的狀態提示,並告知解決方案,使其有路可退。

要杜絕異常狀態下,使用者莫名其妙又無處可去,停滯在某一個頁面的情況。上文中所提到的模態對話方塊和結果頁面都可作為異常狀態的提醒方式。除此之外,在表單頁面中尤其是表單項較多的頁面中,還應明確指出出錯專案,以便使用者修改。

異常狀態——表單出錯

表單報錯,在表單頂部告知錯誤原因,並標識出錯誤欄位提示使用者修改。

便捷優雅

從PC時代的物理鍵盤滑鼠到移動端時代手指,雖然輸入裝置極大精簡,但是手指操作的準確性卻大大不如鍵盤滑鼠精確。為了適應這個變化,需要開發者在設計過程中充分利用手機特性,讓使用者便捷優雅的操控介面。

減少輸入

由於手機鍵盤區域小且密集,輸入困難的同時還易引起輸入錯誤,因此在設計小程式頁面時因儘量減少使用者輸入,利用現有介面或其他一些易於操作的選擇控制元件來改善使用者輸入的體驗。

例如下圖中,在新增銀行卡時,採用攝像頭識別介面來幫助使用者輸入。除此之外微信團隊還對外開放例如地理位置介面等多種微信小程式介面 ,充分利用這些介面將大大提高使用者輸入的效率和準確性,進而優化體驗。

除了利用介面外,在不得不讓使用者進行手動輸入時,應儘量讓使用者做選擇而不是鍵盤輸入。一方面,回憶易於記憶,讓使用者在有限的選項中做選擇通常來說是容易於完全靠記憶輸入;另一方面,仍然是考慮到手機鍵盤密集的單鍵輸入極易造成輸入錯誤。 例如圖中,在使用者搜尋時提供搜尋歷史快捷選項將幫助使用者快速進行搜尋,而減少或避免不必要是鍵盤輸入。

避免誤操作

因為在手機上我們通過手指觸控式螢幕幕來操控介面,手指的點選精確度遠不如滑鼠,因此在設計頁面上需點選的控制元件時,需要充分考慮到其熱區面積,避免由於可點選區域過小或過於密集而造成誤操作。當簡單的將原本在電腦螢幕上使用的介面不做任何適配直接移植到手機上時,往往就容易出現這樣的問題。由於手機螢幕解析度各不相同,因此最適宜點選畫素尺寸也不完全一致,但換算成物理尺寸後大致是在7mm-9mm之間。在微信提供的標準組件庫中,各種控制元件元素均已考慮到了頁面點選效果以及不同螢幕的適配,因此再次推薦使用或模仿標準控制元件尺寸進行設計。

利用介面提升效能

微信設計中心已推出了一套網頁標準控制元件庫,包括 sketch設計控制元件庫 和 Photoshop設計控制元件庫,後續還將完善小程式元件,這些控制元件都已充分考慮了移動端頁面的特點,能夠保證其在移動端頁面上的可用性和操作效能; 同時微信開發團隊也在不斷完善和擴充微信小程式介面,並提供微信公共庫,利用這些資源不但能夠為使用者提供更加快捷的服務,而且對頁面效能的提高有極大作用,無形之中提升了使用者體驗。

統一穩定

除了以上所提到的種種原則,建議接入微信的小程式還應該時刻注意不同頁面間的統一性和延續性,在不同的頁面儘量使用一致的控制元件和互動方式。

統一的頁面體驗和有延續性的介面元素都將幫助用最少的學習成本達成使用目標,減輕頁面跳動所造成的不適感。正因如此,小程式可根據需要使用微信提供的標準控制元件,以達到統一穩定的目的。

視覺規範

字型

微信內字型的使用與所執行的系統字型保持一致,常用字號為20, 18, 17, 16,14 13, 11(pt),使用場景具體如下:

字型顏色

主內容 Black 黑色,次要內容 Grey 灰色;時間戳與表單預設值 Light 灰色;大段的說明內容而且屬於主要內容用 Semi 黑。

藍色為連結用色,綠色為完成字樣色,紅色為出錯用色 Press 與 Disable 狀態分別降低透明度為20%與10%。

列表

表單輸入

按鈕

圖示

資源下載

為方便設計師進行設計,微信提供一套可供Web設計和小程式使用的基礎控制元件庫;同時提供方便開發者呼叫的資源。

預覽地址:https://weui.io