1. 程式人生 > >android webview無網路情況下的處理

android webview無網路情況下的處理

import com.yck.utils.diy.LoadingDialog;
import com.yck.utils.net.HttpUrl;
import com.yck.utils.tools.MyLog;

import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import 
android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import cn.ijgc.goldplus.MyApplication; import cn.ijgc.goldplus.R; import cn.ijgc.goldplus.finance.ui.FinanceNxbIntroduceActivity; public class
DiscoverInformationFragment extends Fragment { private static final String TAG = FinanceNxbIntroduceActivity.class.getSimpleName(); private String errorHtml = ""; WebView webView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return
inflater.inflate(R.layout.discover_information, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); errorHtml = "<html><body><h1></h1></body></html>"; webView = (WebView) getView().findViewById(R.id.web_include_webview); webView.getSettings().setDefaultTextEncodingName("UTF-8"); webView.getSettings().setJavaScriptEnabled(true); initWebView(); webView.loadUrl(HttpUrl.appInfo); } private void initWebView() { // 設定WebView屬性,能夠執行JavaScript指令碼 webView.getSettings().setJavaScriptEnabled(true); // 設定不要快取 webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); // 如果要播放Flash,需要加上這一句 // webView.getSettings().setPluginsEnabled(true); WebSettings ws = webView.getSettings(); ws.setSupportZoom(true); // 設定可以支援縮放 // ws.setUseWideViewPort(true); ws.setLoadWithOverviewMode(true); webView.setWebViewClient(new MyWebViewClient()); } class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { MyLog.e(TAG, "shouldOverrideUrlLoading"); //view.loadUrl(url); return super.shouldOverrideUrlLoading(view, url); //return true; } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { MyLog.e(TAG, "onPageStarted"); super.onPageStarted(view, url, favicon); //showLoadingDialog(); } @Override public void onPageFinished(WebView view, String url) { MyLog.e(TAG, "onPageFinished"); //closeLoadingDialog(); super.onPageFinished(view, url); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); view.loadData(errorHtml, "UTF-8", "text/html"); } } /** * 關閉進度條 */ public void closeLoadingDialog() { if (loadDialog != null) { loadDialog.dismiss(); } } /** * 載入進度條 */ LoadingDialog loadDialog = null; public void showLoadingDialog() { if (loadDialog == null && this.getActivity() != null && !this.getActivity().isFinishing()) { loadDialog = new LoadingDialog(getActivity()); loadDialog.setInverseBackgroundForced(false); loadDialog.setCanceledOnTouchOutside(false); loadDialog.setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { dialog.dismiss(); MyApplication.getInstance().cancelPendingRequests(TAG); } }); } if(loadDialog != null){ loadDialog.show(); } } }