通常,在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中打开,不会触发任何意图!怎么样?
答案 0 :(得分:2)
这是设计的。
http://developer.android.com/guide/webapps/webview.html#HandlingNavigation
要打开用户点击的链接,只需使用
WebViewClient
为WebView
提供setWebViewClient()
即可。例如:
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new WebViewClient());
就是这样。现在,用户点击WebView中的所有链接。
和
如果未提供WebViewClient,默认情况下,WebView将要求活动管理器为URL选择正确的处理程序。 如果提供了WebViewClient,则返回true表示主机应用程序处理URL,而return false表示当前WebView处理URL
shouldOverrideUrlLoading
默认返回false