2011-05-16 104 views
0

您認爲如何處理無網絡連接的最佳方法是?最佳實踐 - 無網絡連接

我未來的應用很大程度上依賴於網絡,沒有它就沒有任何關係。

我看到以不同方式處理情況的應用程序。

當我沒有連接的時候,例如ebay應用程序有時會拉出最後保存的數據,但有時候它會清除所有的東西。 PayPal應用程序會將我註銷,否則它只會崩潰。其中一個新聞應用程序將繼續說加載...

有沒有最好的實踐呢?

應用程序是否繼續嘗試並顯示加載消息,添加刷新按鈕或只是自動關閉應用程序?

謝謝

+1

不是一個真正的編程問題,而是一個設計:)它也與處理NSURLConnection類無關...... – 2011-05-16 15:33:04

回答

0

正確處理「無網絡」條件完全取決於您的應用程序。

需要注意的兩件事:以編程方式關閉應用程序或不能平穩處理「無法連接」情況都是Apple審覈過程中拒絕的原因。

經與設計,而且還嚴重依賴於網絡是可用的應用程序有經驗,我會說,最好的做法可以在以下概括:

1)使用Reachability框架,以檢測哪種連接的你有;我鏈接到的版本將優於Apple提供的版本,這是一個錯誤(有關這方面的更多信息,請參閱S.O)。 2)每次你需要網絡數據時,檢查連接是否回來(即不是一開始就是一次);

3)總是通知用戶沒有網絡可用,當發生這種情況時,通過顯示警報或更好地顯示某種其他類型的圖標/消息;最不干擾的顯示類型是最好的,所以不會破壞用戶的工作流程; 4)如果你有緩存的數據,這是有道理的,當沒有網絡連接可用時使用緩存數據(這將使應用程序在這種情況下「部分可用」); 5)爲用戶提供一個刷新數據的按鈕,如果這對你的應用程序有意義的話;

這就是說,這個「最佳實踐」最簡單的實現是一個應用程序,如果沒有連接可用,將用戶帶回到「主屏幕」(醜陋的,但它可能是你的唯一明智的東西應用程序)。完整的實現是,例如,一個rss閱讀器緩存所有的新聞,並允許你讀取它們,即使沒有連接(顯然沒有加載新的數據)。

+0

這就是我以前的樣子。謝謝 – user643097 2011-05-16 18:54:06

0

最簡單的事情第一:你應該永遠自己關閉應用程序,你永遠不應該崩潰。

如果在您的情況下顯示舊數據是適當的,只要這樣做,也許在屏幕上添加一些通知,用戶處於脫機狀態。

如果在沒有在線訪問的情況下沒有任何用處可以做,灰色的東西都可以用或者使用類似的技術。

繼續嘗試在後臺重新連接(即監聽網絡可用性更改)並正確運行。

有一點需要記住:使用移動設備時,通常會出現短暫的斷開連接,需要進行適當的處​​理。

0

如果在你的應用程序沒有網絡連接則是更好地說:「沒有網絡連接」之類的消息,而不是顯示加載/刷新等

或者存儲在數據庫中的數據也將是一個不錯的選擇至少用戶可以在離線模式下播放數據,而且您的應用程序也可以在離線模式下使用。 (正如你所提到的我未來的應用很大程度上依賴於網絡,沒有它將無關))。

請確保您的應用程序在網絡不可用時不會崩潰。