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