2.1 问题
应用程序使用WebView显示内容,但在用户点击页面中的链接时还需要监听和响应。
2.2 解决方案
(API Level 1)
实现一个WebViewClient并把它关联到WebView上。WebViewClient和WebChromeClient是两个WebKit类,它们可以让应用程序获得WebView的事件回调并且可以自定义WebView的行为。默认情况下,在没有指定WebViewClient时,WebView会将一个URL传递给ActivityManager处理。而ActivityManager通常会在浏览器应用程序中打开用户点击的链接,而不是当前的WebView中。
2.3 实现机制
在代码清单中,可创建一个含有WebView的Activity,该WebView将处理它自己的URL加载。
带有一个WebView的Activity的Activity,该WebView会处理URL
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webview = new WebView(this);
webview.getSettings().setJavaScriptEnabled(true);
//添加一个客户端到视图上
webview.loadUrl("http://www.baidu.com/");
setContentView(webview);