android 2.2中的WebViewClient不应调用OverrideUrlLoading
姜饼中的WebViewClient中似乎有一个bug,我们依靠boolean shouldOverrideUrlLoading(WebView视图,字符串url)方法将标题放回重定向和重新加载android 2.2中的WebViewClient不应调用OverrideUrlLoading,android,android-webview,Android,Android Webview,姜饼中的WebViewClient中似乎有一个bug,我们依靠boolean shouldOverrideUrlLoading(WebView视图,字符串url)方法将标题放回重定向和重新加载 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith(URL.BASE_URL)) { view.loadUrl(url, RestCli
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith(URL.BASE_URL)) {
view.loadUrl(url, RestClient.defaultHeaders);
}else {
onExternalBrowserURL(url);
}
return true;
}
在2.2中,shouldOverrideUrlLoading并不总是被称为移动网站,而不是android网站加载
这里列出了一个bug
最后一条评论如下:(
有没有人有一个解决方案不涉及将所有URL更改为自定义URL方案或协议
谢谢应该重写。只调用() 将要在当前WebView中加载新url时 这意味着,如果您加载到WebView,然后再次加载,则第二次shouldOverrideUrlLoading将不会启动。这很烦人,因为如果不使用HttpRequest之类的工具自行下载网页,就无法向每个请求添加自定义标题 我认为他们设计的应用程序应该覆盖URL,主要是为了让WebView用户能够拦截对youtube等网站的第一个请求,然后将用户引导到应用程序中,而不是使用浏览器。他们设计的应用程序不是用于添加标题 我尝试了一段时间,使用它向我的请求添加一个DO NOT TRACK标头,除了出于上述原因每次都不发送标头外,loadUrl(url,header)方法没有将标头放置在正确的位置,站点也无法识别DNT标头
tldr:No
应覆盖加载url时不调用
loadUrl("http://google.com");
或者,如果浏览器像您提到的那样重定向url。根据,重定向在API级别11和更低级别上不起作用,但是如果您想获取在loadUrl
中使用的url,则不会调用所有版本的shouldOverrideUrlLoading
您可以改为使用。类似: