1

オフラインWebAppのappcacheの問題をテストしているときに、エミュレーターの問題に遭遇しました。WebViewにWebページを読み込もうとしました。完全に表示される場合もあれば、何も表示されない場合もあります。最初は、それが私のせいだと思いました。テスト中に挿入したバグのあるコードを監視していました。しかし、そうではありません。
代わりに、エミュレータ自体のバグ(または設定ミス)だと思います。電話したら

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

その後

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

ビューには、index.jspのコンテンツではなく、見出し「TEST」が表示されます。だから私はインデックスに追加しました:

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

そして今、それは私の期待されるトースト「ハローウェルト!」を示しています ->ページが受信され、何らかの方法で処理されました。
しかし、ディスプレイには私のindex.jspは表示されません。代わりに、TESTが存在します。

さらに、「すべてのアプリメニュー」のアプリ記号が半分にカットされ、一番下の行も表示されていないことを確認しました。おそらくそれはグラフィックスドライバまたは同様のものとの非互換性です!?

誰かがその問題を知っていますか、それを修正する方法のヒントを私に与えることができますか?

4

1 に答える 1

1

そして問題は次のとおりでした:トーストでJSアラートに反応する:

    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 に答える