1

在为离线 WebApp 测试 appcache 问题时,我偶然发现了模拟器的问题:我试图在 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");

该视图显示标题“TEST”,而不是 index.jsp 的内容。所以我添加到索引中:

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

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

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

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

4

1 回答 1

1

问题是:用 Toast 对 JS-alerts 做出反应:

    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;就像预期的那样...... ... ... ...

于 2012-07-30T08:49:47.100 回答