android webview 页面加载拦截

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(){
			@Override
			public boolean shouldOverrideUrlLoading(WebView view, String url){
				try{
					if(url.indexOf("http://www.baidu.com") >= 0){
						view.stopLoading();//停止加载
						//……
					}
				}
				catch(Exception e){
				}
				return false;
			}
			@Override
			public 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() {
			@Override
			public void onClick(View v) {
				finish();
			}
		});
		web.loadUrl("http://www.baidu.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;    
	        }    
	    });  
		
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值