網絡故障設計總結
摘要 :
當你正在用微信跟朋友胡侃,在b站看紀錄片,逛虎撲懟skr。這時網絡突然斷掉,我們應該給用戶什么樣的提示呢?最近因為自己也在梳理類似的場景,所以這篇文章就來跟大家分享交流一下在網絡故障場景下如何給予用戶合適的提示。
所有的報錯提示/反饋都可以拆解為兩個部分:報錯現象和解決方案。因此網絡發生故障時我們首先應該告訴用戶您當前的網絡狀態異常,讓用戶感知到這個事實,然后再提供解決方案。
目前來說,常見的報錯樣式有toast、snackbar、對話框、通告欄、界面內嵌與空頁面。最近看了一下自己之前的文章,發現都是基于組件來闡述適用場景。這種解構方式有個問題,那就是現實情況中,產品或者交互設計師都是基于場景去確定合適的組件。因此為了更方便大家理解,這里我不具體介紹每個組件的用法,而是以場景來定義來組件。
不提示
首先我們需要明確一個事實:不是每一種網絡故障都需要提示用戶。這里的“不提示”其實是一個相對的說法,并不是真的不給用戶提示,而是只有用戶執行了請求數據的操作才告知用戶網絡發生故障。支付寶就是一個典型的例子,即使斷網了,用戶基本也感知不到。只有用戶請求了新數據,才會以toast通知用戶網絡異常。
支付寶這種高冷也是有底氣的,因為其多數頁面都有緩存機制,用戶不用每次進入這個頁面都要去服務端請求一遍數據。類似的還有QQ音樂、咕咚,對于這些產品來說斷網并不會帶來災難性的影響。因為斷網不影響我去聽緩存或下載好的歌曲,也不會影響記錄運動數據。所以對于此類應用來說,當網絡報錯的時候,只要用戶沒有觸發請求數據的操作,沒有必要提示用戶。
當然我們需要給緩存數據設置一個有效期,如果過了那個有效期,網絡還是沒有恢復正常,應該及時提示用戶網絡故障。
無緩存
當然并不是每一個頁面都有緩存,對于沒有緩存數據的頁面,我們有兩種方案。一種是展示空頁面,另一種是展示骨架屏(Skeleton Screen)。
骨架屏顧名思義就是展示頁面的框架,當數據請求完成時再渲染頁面。這種先占好位置再加載數據的模式也被稱之為占位符,都是一個意思。
最后再說空頁面,其實空頁面的展示方案也可以分為兩種:
1 提供“刷新頁面”按鈕;
2 提供“解決方案”按鈕;
兩種方案都有自己的道理,我個人更傾向于把兩種方案進行融合。展示“刷新頁面”的按鈕,如果用戶點擊了還是沒有辦法請求到數據,這時以snackbar的形式提供解決方案。其實解決方案都是引導用戶去系統設置里檢查/開通網絡權限。
持續性提示
有緩存數據的頁面,支付寶可以不提示用戶,但是對于QQ和微信這類即時通訊類的應用來說,給予用戶網絡故障的反饋是非常有必要的。因為如果不給提示,我不知道對方突然不回我信息是我惹對方生氣了還是我網絡故障收不到。QQ和微信這里統一采用的是通告欄,用戶點擊之后進入一個展示網絡故障解決方案的頁面。這里可能會有人問,為什么不使用對話框,對話框也可以完成跳轉動作啊。
我嘗試著來分析一下,如果使用對話框,那么對話框的觸發機制有兩種:
1 只要檢測出網絡不通暢,立即彈出對話框通知用戶;
2 檢測出網絡不通暢,立即彈出對話框通知用戶,不做二次提示;
第一種觸發機制明顯不合理,因為用戶使用微信并不一定非要網絡通暢,有的用戶就是想翻看一下聊天記錄。你這邊只要檢測出網絡故障就會彈出一個對話框,會對用戶造成很大的干擾。
第二種也不合理,如果用戶所處的網絡環境不穩定,時斷時續,那么一旦你第一次點擊關閉了彈出框,用戶就無法感知到后續網絡的異常。
所以微信用戶對于網絡故障提示的要求是在給予用戶持續性的提示前提下,還不能干擾用戶正常操作。好了好了,這個問題我知道了,但是我不需要立即去處理。
可以滿足上面這個條件的控件有兩個:snackbar和通告欄,微信用的是通告欄,京東用的是snackbar。以京東為例,用戶在使用京東過程中如果網絡突然發生故障,那么會從界面頂部彈出一個snackbar來通知用戶,用戶點擊之后會進入一個頁面,展示一些解決方案。其實在上面我也提到過,所謂的解決方案就是讓用戶去系統設置頁檢查/開通網絡權限,我們可以像網易云音樂一樣直接提供一個跳轉鏈接,節省用戶操作步驟。
snackbar和通告欄的區別在于snackbar的位置是固定的,只要你的網絡不暢通,那么它一直會出現在界面頂部。這是因為京東對于網絡的訴求比微信要更強,沒有網絡微信用戶還可以翻看聊天記錄,京東用戶沒有網絡還能干什么?沒有辦法瀏覽商品,更不用說剁手了,京東比微信更需要用戶去解決網絡故障的問題。
網絡切換
除了斷網與弱網情況,另一個需要考慮的問題是網絡切換。當網絡從4g切換至wifi,我們用toast來提示用戶沒有任何問題,甚至不提示也沒事,不會對用戶產生太大的影響。但是反過來說,wifi突然斷掉,切換至4g網絡,我們還能如此淡定嗎?
當我用wifi觀看視頻,突然wifi斷掉,會自動切換至4G網絡。為了避免讓用戶在不知情的情況下耗費大量的流量,我們應該給用戶一個網絡變更的提示,用戶確認之后才可以繼續觀看。提示的方式目前來說主要界面內嵌和對話框,嗶哩嗶哩和網易云音樂這里用的都是界面內嵌。
有意思的是在網易云音樂中,如果你聽歌過程中wifi突然斷掉,那么4G網絡會繼續緩存歌曲,而QQ音樂是不會繼續緩存的。僅從這點上來說,我個人覺得騰訊做的更貼心。
最后插一句:網絡狀態由wifi切換至4G絕對不可以使用toast!因為安卓的某些機型中,用戶在系統設置中關閉推送會把toast也給禁用掉。對于這些用戶來說,他們是收不到提示的,很容易造成流量的損失。所以優先級高的反饋我們都只考慮使用對話框,因為對話框所承載的信息用戶100%會看到。
總結
以上就是我對網絡故障場景下的設計總結,如果你有不同的看法或者意見,歡迎留言或者加群討論。
【推薦閱讀】:
責任編輯:公司名稱
版權所有:http://www.jmfzsj.cn/ 轉載請注明出處
聊城宏遠網絡科技有限公司
公司電話:0635-8881555
公司傳真:0635-8350166
企業郵箱:35157339@qq.com
公司地址:聊城市開發區遼河路228號大地科研樓