Android 网络视图中的安卓Bug?一些URL';s提示webview启动外部浏览器

Android 网络视图中的安卓Bug?一些URL';s提示webview启动外部浏览器,android,url,webview,Android,Url,Webview,我有一个带有网络视图的“新闻活动”。当我从我的主要活动启动它时,链接会在webview中正确打开,但由于某些原因,某些url会导致webview打开,但随后会立即启动外部浏览器。在检查调试控制台时,我没有发现webview引发的任何异常或其他消息无法处理url。 请注意,我不是说在webview加载url/页面后单击的链接。 我还尝试在webview中激活javascript,但没有成功。 同样,这只发生在来自同一域的一些url上(特别是新闻网站;而且,我没有阻止url或覆盖) 以下是无法在we

我有一个带有网络视图的“新闻活动”。当我从我的主要活动启动它时,链接会在webview中正确打开,但由于某些原因,某些url会导致webview打开,但随后会立即启动外部浏览器。在检查调试控制台时,我没有发现webview引发的任何异常或其他消息无法处理url。 请注意,我不是说在webview加载url/页面后单击的链接。 我还尝试在webview中激活javascript,但没有成功。 同样,这只发生在来自同一域的一些url上(特别是新闻网站;而且,我没有阻止url或覆盖)

以下是无法在webview中打开的URL之一:

下面是调用“NewsActivity”的代码

这是“NewsActivity”中的代码

如果有人对可能发生的事情有线索或能提出任何想法,我将不胜感激。
谢谢

您的URL可能有重定向。我遇到了类似的问题

使用webview将其添加到您的活动中

webView.setWebViewClient(new Callback());
将其添加到onCreate之外

private class Callback extends WebViewClient{  //Helps to open in webview instead of browser

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return (false);
    }

}

这不是一个bug。

你需要使用


您可以按如下方式设置新的WebViewClient:

webView.setWebViewClient(new WebViewClient());
webView.setWebViewClient(new WebViewClient(){

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
  view.loadUrl(url);
  return true;
}}); 
但更准确地说,您需要像这样重写shouldOverrideUrlLoading方法:

webView.setWebViewClient(new WebViewClient());
webView.setWebViewClient(new WebViewClient(){

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
  view.loadUrl(url);
  return true;
}}); 

是的,事情就是这样。原始url有一个重定向,这就是为什么它会立即打开浏览器。这个解决方案唯一的一点(否则效果很好)是后续链接在webview中打开,而不是在浏览器中打开——这正是我想要的——但我想这是无法避免的,因为这是网站使用重定向的问题。谢谢
webView.setWebViewClient(new WebViewClient(){

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
  view.loadUrl(url);
  return true;
}});