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;
}
});
}
}