android - Android 模拟器中的 WebView 加载页面但不显示内容

标签 android android-webview emulation

在测试离线 Web 应用程序的应用程序缓存问题时,我偶然发现了模拟器的问题: 我试图在 WebView 中加载网页。有时它显示完美,有时它什么也没显示。 首先,我认为这是我的错 - 监督我在测试时插入的一些错误代码。但事实并非如此。
相反,我认为这是模拟器本身的错误(或配置错误)。因为如果我打电话

    myWebView.loadData("<html><body><h1>TEST</h1></body></html>", "text/html", "UTF-8");

然后

    myWebView.loadUrl("http://10.0.2.2:8080/FrontEnd/index.jsp");

View 显示标题“TEST”,而不是 index.jsp 的内容。所以我在索引中添加了:

    $(alert("Hallo Welt!"));

现在,它显示了我预期的 toast “Hallo Welt!” -> 页面已收到并以某种方式进行了处理。
但是:显示的不是我的 index.jsp - 而是 TEST 驻留。

此外,我观察到“所有应用程序菜单”中的应用程序符号被切成两半,并且也没有显示最下面的行。也许这是与图形驱动程序不兼容或类似的问题!?

有没有人知道这个问题或者可以给我提示如何解决这个问题?

最佳答案

问题是:用 Toast 对 JS 警报使用react:

    myWebView.setWebChromeClient(new WebChromeClient() {
        @Override
        public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
            Logger.getLogger("js-console").log(Level.INFO, "received js-alert!");
            Toast toast = Toast.makeText(view.getContext(), message, Toast.LENGTH_LONG);
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.show();
            return true;
        }
    });

但不打电话

    JsResult.confirm();

toast.show(); 之后和 return true; 之前添加这一行之后,一切都像预期的那样...... ... ...

关于android - Android 模拟器中的 WebView 加载页面但不显示内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11688882/

相关文章:

android - 如何强制使 WebView 父级变暗以便我可以使用 WebSettingsCompat.FORCE_DARK_AUTO?

javascript - 将数组从js传递到android

java - 在Nox(Android模拟器)中运行java .class/.jar文件

android - Mediator LiveData的addSource onChange回调是默认在主线程执行的吗?

android - 如何在WebView中启用水平滚动条

android - 在每天的特定时间调用方法

Android Studio gapps 已在模拟器中停止

android - 在我的应用程序中播放视频的最佳方式是什么

android - 如何知道 webView 是否开始在 android 中呈现

黑莓模拟器无法连接到互联网