android - 在 Android 4.0.x Ice Cream Sandwich 中,WebView 不会在应用启动时呈现本地 HTML 页面

标签 android apache-flex webview android-webview android-4.0-ice-cream-sandwich

我知道这个问题已经在这个论坛上以不同的形式提出过,但是到目前为止,没有一个答案对我有帮助——无论是接受的还是我发现的其他答案。

我正在开发一个使用原生 android、HTML 和 Adboe 的 Flex SDK 的混合应用程序(没有任何框架,如 PhoneGap 等,使用 Android 自己的 WebView 的简单代码)。

这是我面临的问题:

当应用程序启动时,首先触发 flex sdk 的 Activity"AppEntry",它是一个空白 Activity,它只是为 flex SDK 设置上下文和初始设置。接下来,启动原生 MainActivity,它使用 WebView 加载 HTML 项目。 在 Android 4.0.x (ICS) 上,即使 URL 已加载(为相关 URL 成功调用 onPageFinished()),webview 也会显示为空白(白色)。这发生在第一次安装和启动应用程序时,在停止应用程序后(通过从最近的应用程序栏中删除它),页面按预期加载。像这样反复重新启动有时会重现问题,但频率不可预测。

一些需要考虑的事情:

  1. 由于 flex sdk 的限制,这些 HTML 文件不能直接存储在“/assets”文件夹中,而是包含在 assets 文件夹中的目录结构中。

  2. 问题仅出现在 Ice Cream Sandwich 上 (known issue I guess) !

我已经尝试过的东西:

  1. 硬件加速已关闭(开启/关闭无关紧要,两者都经过测试)

2.

WebSettings settings = webView.getSettings();        
        settings.setJavaScriptEnabled(true);
        settings.setUseWideViewPort(true);
        settings.setLoadWithOverviewMode(true);
        settings.setSupportMultipleWindows(true);
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
        settings.setLoadsImagesAutomatically(true);
        settings.setDomStorageEnabled(true);
        settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        settings.setSaveFormData(true);
        settings.setAllowFileAccess(true);
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
            settings.setAllowContentAccess(true);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                settings.setAllowFileAccessFromFileURLs(true);
                settings.setAllowUniversalAccessFromFileURLs(true);
            }
        }
        settings.setAppCacheEnabled(true);
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
        settings.setLoadsImagesAutomatically(true);
        boolean enableZoom = true;
        settings.setBuiltInZoomControls(enableZoom);
        settings.setSupportZoom(enableZoom);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR_MR1) {
            initializePluginAPI(webView);
        }
        settings.setDatabaseEnabled(true);

问题是我的应用在 Play 商店中的评论评论被取消了。任何帮助或见解将不胜感激。

最佳答案

the webview turns out to be blank(white) even thought the URL is loaded (onPageFinished() is called successfully for the URL in question).

我通过使用 mWebView.post()

解决了它

关于android - 在 Android 4.0.x Ice Cream Sandwich 中,WebView 不会在应用启动时呈现本地 HTML 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32267185/

相关文章:

android - Listview Baseadapter搜索功能

android - 让 Intent 转到我的主 xml 文件中的布局

android - android中方向改变的媒体查询

android - 如何在 Android 中突出显示设置行?

Android:支持未显示自定义布局的 DialogFragment

apache-flex - Flex Chart 上轴标签的位置,以及如何相对于它们定位事物

ios - Flex iOS 应用程序在没有互联网连接的情况下无法启动,然后显示不需要的弹出窗口

apache-flex - Flex Datagrid 在悬停时显示项目编辑器

android - 从 WebView 调用键盘时,折叠工具栏无法正常工作

java - 网页查看 Android 应用程序