我有这个Android应用程序,它使用java-javascript桥接器从浏览的页面中获取信息。
当有重定向时,它适用于所有其他链接。当页面加载时,我显示一个全屏半透明对话框,加载完成后我隐藏对话框。
问题是对话框出现两次,一个在另一个上面,但页面最终重定向并完全加载,在最后一个对话框上仍然停留在屏幕上并冻结整个应用程序,除非我强制关闭它并重新安装。
我想知道是否有人有相同的经历,任何提示和技巧,我们将不胜感激。
谢谢!
答案 0 :(得分:5)
只有在页面加载完成后才会调用onPageFinished回调。当重定向发生时,webview跳转到下一个地址而不完成当前请求。
您的问题的解决方案可能是设置一个标志,告诉您何时显示“正在加载”对话框。如果该标志为ON,则不会显示新标志,从而避免出现多个对话框的问题。
如果想了解更多关于WebView的内部工作原理,我建议查看Android的源代码,特别是webkit部分: