仅仅设置webViewClient会导致在webview中打开链接

时间:2013-07-30 07:32:08

标签: android android-webview

通常,在WebView中单击链接时,意图会导致Web浏览器或支持该意图的其他活动打开。

WebView webView = new WebView(this);
setContentView(webView);
webView.loadUrl("http://google.com");

但是,当我只设置一个空的WebViewClient ...

WebView webView = new WebView(this);
webView.setWebViewClient(new WebViewClient() {});
setContentView(webView);
webView.loadUrl("http://google.com");

...链接在WebView中打开,不会触发任何意图!怎么样?

1 个答案:

答案 0 :(得分:2)

这是设计的。

http://developer.android.com/guide/webapps/webview.html#HandlingNavigation

  

要打开用户点击的链接,只需使用WebViewClientWebView提供setWebViewClient()即可。例如:

WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new WebViewClient());
  

就是这样。现在,用户点击WebView中的所有链接。

http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView, java.lang.String)

  

如果未提供WebViewClient,默认情况下,WebView将要求活动管理器为URL选择正确的处理程序。 如果提供了WebViewClient,则返回true表示主机应用程序处理URL,而return false表示当前WebView处理URL

shouldOverrideUrlLoading默认返回false