android webview 页面加载拦截

来源:互联网 发布:ubuntu网络 编辑:程序博客网 时间:2024/06/02 22:20

android开发中,有时候会用到webview来显示。在webview页面中,若有这样的需求:拦截某个地址,并让其停止加载,只要用stopLoading就可以解决:

package com.lianxi.adapter;import java.util.List;import android.app.Activity;import android.app.ProgressDialog;import android.content.DialogInterface;import android.content.Intent;import android.content.DialogInterface.OnKeyListener;import android.os.AsyncTask;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.webkit.SslErrorHandler;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;public class TestActivity extends Activity  { WebView web; String bookId = "";  protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.webview);web = (WebView)findViewById(R.id.webview);web.getSettings().setJavaScriptEnabled(true);web.getSettings().setDefaultTextEncodingName("UTF-8");web.getSettings().supportZoom();web.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);web.requestFocus();web.setWebViewClient(new WebViewClient(){@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url){try{if(url.indexOf("http://www.baidu.com") >= 0){view.stopLoading();//停止加载//……}}catch(Exception e){}return false;}@Overridepublic void onReceivedSslError(WebView view, SslErrorHandler handler, android.net.http.SslError error){//重写此方法可以让webview处理https请求handler.proceed();}@Override        public void onPageFinished(WebView view,String url){String returnUrl = view.getUrl();if(returnUrl != null && returnUrl.indexOf("access_token") != -1){view.clearView();}        } });findViewById(R.id.channelBackHome).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {finish();}});web.loadUrl("http://subway.17kss.com/");//后退web.setOnKeyListener(new View.OnKeyListener() {            @Override            public boolean onKey(View v, int keyCode, KeyEvent event) {                if (event.getAction() == KeyEvent.ACTION_DOWN) {                    if (keyCode == KeyEvent.KEYCODE_BACK && web.canGoBack()) {  //表示按返回键 时的操作                      web.goBack();   //后退                        return true;    //已处理                    }                }                return false;            }        });  }}

原创粉丝点击