0

私は現在、HTML5 viewer.js の例を Android WebView 内で動作させようとしています。

WebView の初期化は次のようになります。

webView.setWebViewClient(new WebViewClient());
final WebSettings webSettings = webView.getSettings();
settings.setJavaScriptEnabled(true);
webView.loadUrl("file:///android_asset/index.html");

問題は、Android 4.3 JB (ストック ブラウザーとして Chrome を使用) を実行している Nexus 7 では、例が失敗してレンダリングされることです: Error loading document metadata (did you check the url?)。4.2 を実行している Samsung Galaxy Nexus も試しましたが、同じ結果が得られました。

しかし、Android 4.0.4 ICS (デフォルトのブラウザ アプリケーションを使用) を実行している GBox (MediaBox、Android TV) では、しばらく時間がかかりますが、ドキュメントはレンダリングされます。多くのスタイルの問題がありますが、レンダリングできます。

ただし、リモート サーバー (たとえば、Python SimpleHttpServer) からすべてのアセットを提供し、インデックス ページの URL を使用して WebView を読み込むと、どのデバイスでも問題は発生しません。

これは、クロス ブラウジングに関する Crocodoc View API 固有の問題ですか?

4

1 に答える 1

1

これは Chrome 固有の問題です。こちらを参照してください: Chrome でローカル ファイルを使用する jQuery getJSON の問題

要約すると、Chrome のセキュリティ モデルはfile:///URL からの AJAX リクエストをブロックします。これは、AJAX を使用してパフォーマンスが最適化された方法でリソースをロードするため、viewer.js に問題を引き起こします。推奨される解決策は、常に Web サーバーを介してアセットを提供することです。

于 2013-11-09T22:31:57.110 に答える