Android WebView的shouldOverrideUrlLoading方法未被调用

14

我的应用程序在Honeycomb 3.2版本上没有调用shouldOverrideUrlLoading()方法。我已经在2.2和4.0.1上进行了测试,它们都正常工作。

这是Honeycomb的一个bug吗?我该如何解决?

我需要在shouldOverrideUrlLoading()方法中为每个请求发送自定义标头。

view.loadUrl(url,headers);

提前感谢。


当请求为POST时,shouldOverrideUrlLoading()不会被触发(也许这就是原因)。 - Indrek Kõue
@SYLARRR 我在其他版本上尝试了GET和POST,它们都可以正常工作。 - Riddle
这个函数经常没有被调用。我发现在很多网站上都有同样的问题,包括www.youtube.com。我还没有深入挖掘原因,但基本上这个函数不可靠。 - Lee
@李,这只在蜂巢版本中发生,其他版本都能正常运行。 - Riddle
1个回答

11

只有用户执行导航操作时,此方法才会被调用。如果网站重定向用户,则不一定总是会调用它。这种情况很常见,例如网站使用AJAX更改页面内容或重定向用户。

请查看WebViewClient中的其他回调函数,以找到适合您需求的回调函数:onLoadResource、onPageStarted。在您的情况下,因为目标API级别为11+,所以shouldInterceptRequest也可供您使用。


这三种方法都没有被调用,但有时从日志中发现它们实际上被触发了!这个例程不可靠吗? - duckduckgo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接