在WebView中点击链接使用自身打开
最近写一个应用时,用到了WebView,可是却突然遇到问题了,首次加载的网页在自定义的webView中显示,可是当点击网页中的链接,却提示使用系统中别的浏览器打开。这样可不好,
如何将点击链接后的网页也显示呢,于是边Google边查看Android文档,找到找到了一个方法,以下使用源码解释。
package demo.androidyue.webview;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class WebViewDemoActivity extends Activity {
private WebView webView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//初始化WebView
this.initWebView();
}
/*
* 初始化WebView
*/
private void initWebView(){
//从布局文件中扩展webView
this.webView=(WebView)this.findViewById(R.id.webview);
//为WebView设置WebViewClient处理某些操作
this.webView.setWebViewClient(new webViewClient());
//加载地址
this.webView.loadUrl("http://10.0.2.2");
}
class webViewClient extends WebViewClient{
//重写shouldOverrideUrlLoading方法,使点击链接后不使用其他的浏览器打开。
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
//如果不需要其他对点击链接事件的处理返回true,否则返回false
return true;
}
}
}
关键就是为WebView设置WebViewClient,然后重写shouldOverrideUrlLoading方法即可。其中WebViewClient为WebView的一个辅助类,主要处理各种通知、请求事件。