종종 멀티 플랫폼을 지원하는 서비스를 사용해 보면, 앱에서 웹뷰(WebView)를 사용해서 서버의 페이지를 보여주는 경우를 쉽게 볼 수 있다. 하지만, 네트웍이 안 되는 경우에는 아래와 같은 에러 페이지를 볼 수 있다. 사용자 관점에서 이 화면은 아주 안 좋은 경험(UX)을 줄 수 있고, 이 경우를 개선하기 위해서 네트웍을 사용할 수 없는 경우에 마지막에 본 페이지를 캐시해서 보여주기도 한다.
그래서, 네트웍을 사용할 수 없는 경우, 위의 에러 화면이 아니라 마지막으로 본 페이지를 보여주는 방법을 간단하게 살펴보면 아래와 같다.
public static void setWebView(Context context) { webView.getSettings().setAppCachePath(getContext().getCacheDir().getAbsolutePath()); webView.getSettings().setAllowFileAccess(true); webView.getSettings().setAppCacheEnabled(true); webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); // 네트웍 연결여부를 확인한다. if(!isNetworkAvailable(context)) { webView.getSettings().setCacheMode( WebSettings.LOAD_CACHE_ELSE_NETWORK ); } } public static boolean isNetworkAvailable(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); return netInfo != null && netInfo.isConnected(); }