1
我有一个webview,webview可能包含具有两种不同类型链接的网页。我想要的是,如果用户点击包含http://webpagename.com
的链接,它应该打开手机浏览器中的链接。如果用户点击没有http://
的第二种链接,他应该被重定向到一个新的活动。目前发生的事情是,与http://
的链接在网页浏览和浏览器中都是开放的。但是,没有http://
的链接显示为网页不可用。Webview尝试打开所有链接,但应该在浏览器中打开
来处理网页视图的onclick链接代码:
// to know which link is clicked
holder.webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
holder.webView.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest (final WebView view, String url) {
if (url != null && url.startsWith("http://")) {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return null;
}
else {
Log.e("URL: ", url);
System.out.println(url.replace(url.substring(0,url.lastIndexOf("/")+1), ""));
return null;
}
}
/**
* Return WebResourceResponse with CSS markup from a String.
*/
});
return super.shouldOverrideUrlLoading(view, url);
}
});
我应该怎么做,以确保http://
链接总是在浏览器中打开,另一个链接打开活动,但没有在网页视图中打开?
我改变了返回值super.shouldOverrideUrlLoading(view,url);返回真实;但它是一样的。没有帮助我 – kittu88 2014-11-21 08:14:28
是的,我只是仔细看看你的代码。这有点不吉利。您不应该在'shouldOverrideUrlLoading()'方法内设置另一个'WebViewClient'。在一个客户端覆盖你需要的两种方法,并设置一次。 – 2014-11-21 08:19:27
如果部分工作很酷,但其他部分不是 – kittu88 2014-11-21 09:16:34