WebView开始url Android 4.4.3

WebView开始url Android 4.4.3,android,android-webview,Android,Android Webview,我们有一个Nexus5和最新版本的Android 4.4.3,还有一个在webview中运行的混合web应用程序。 在此更新之前,我们检查了方法onPageFinished中的url 以/或关于开始:空白以呈现web应用程序的登录页面。 比如: if (url.equals("/") || url.equals("about:blank")) webview.loadUrl(preferences.getString("server_url", ge

我们有一个Nexus5和最新版本的Android 4.4.3,还有一个在webview中运行的混合web应用程序。 在此更新之前,我们检查了方法onPageFinished中的url 以/或关于开始:空白以呈现web应用程序的登录页面。 比如:

if (url.equals("/") || url.equals("about:blank"))
   webview.loadUrl(preferences.getString("server_url",
                    getString(R.string.DefaultURL)));
这对于使用4.4.3的设备不再有效

我应该添加哪些条件来支持此设备?

好的,我找到了解决方案。 在问题代码之前,我们正在启动webview,其中包含一个图像,以在加载应用程序之前显示加载消息。使用:

  webview.loadDataWithBaseURL("/", wait_html, "text/html", "UTF-8", "");
wait_html参数是body标记中的图像标记。当web视图第一次作为url启动时,我在方法onPageFinished中得到的就是html。这种行为与以前版本的Android不同。 我们改变了它的实现方式,只使用一个布尔变量来检查是否是第一次创建web视图来加载服务器的url

if (FirstTime) 
 FirstTime = false;
 webview.loadUrl(preferences.getString("server_url",getString(R.string.DefaultURL)));

请使用普通URL,而不是/或关于:空白。理想情况下,只需使用。如果使用怪异的URL,4.4 WebView的行为将不一致


还有,为什么您需要等待onPageFinished呢?您应该能够在新创建的网络视图上调用loadUrl。

由于Android 4.4.3目前的可用性相当有限,因此最好添加LogCat输出,以显示您在onPageFinished上收到的URL。我得到的数据是:text/html;字符集=utf-8;base64,然后是base64字符串。