package cn.sinata.xldutils.activitys; import android.annotation.SuppressLint; import android.graphics.Bitmap; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import cn.sinata.xldutils.R; import cn.sinata.xldutils.utils.Utils; /** * 网页加载 */ public class WebViewActivity extends TitleActivity { private WebView webView; private View loadingView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web_view); initView(); } @SuppressLint("SetJavaScriptEnabled") protected void initView() { webView = bind(R.id.webView); loadingView = bind(R.id.ll_loading); String url = getIntent().getStringExtra("url"); if (url == null) { url = ""; } WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true); settings.setDefaultTextEncodingName("utf-8"); webView.setWebChromeClient(new WebChromeClient() { @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); if (resetTitle()) { setTitle(title); } } }); webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); if (isDestroy) { return; } loadingView.setVisibility(View.GONE); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); loadingView.setVisibility(View.VISIBLE); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Utils.systemErr(url); if (!TextUtils.isEmpty(url)) { webView.loadUrl(url); } return true; } }); webView.loadUrl(url); } protected boolean resetTitle() { return true; } @Override protected void onDestroy() { super.onDestroy(); //webView回收,部分手机无效 if (webView != null) { webView.stopLoading(); webView.removeAllViews(); webView.destroy(); } } }