当webl重定向时,android webview不会调用onPageFinished

时间:2012-05-15 01:14:37

标签: java android webview

我有这个Android应用程序,它使用java-javascript桥接器从浏览的页面中获取信息。

当有重定向时,它适用于所有其他链接。当页面加载时,我显示一个全屏半透明对话框,加载完成后我隐藏对话框。

问题是对话框出现两次,一个在另一个上面,但页面最终重定向并完全加载,在最后一个对话框上仍然停留在屏幕上并冻结整个应用程序,除非我强制关闭它并重新安装。

我想知道是否有人有相同的经历,任何提示和技巧,我们将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:5)

只有在页面加载完成后才会调用onPageFinished回调。当重定向发生时,webview跳转到下一个地址而不完成当前请求。

您的问题的解决方案可能是设置一个标志,告诉您何时显示“正在加载”对话框。如果该标志为ON,则不会显示新标志,从而避免出现多个对话框的问题。

如果想了解更多关于WebView的内部工作原理,我建议查看Android的源代码,特别是webkit部分:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.3.7_r1/android/webkit/