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 的三星 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 请求。这会给 viewer.js 带来麻烦,因为它利用 AJAX 以性能优化的方式加载资源。推荐的解决方案是始终通过 Web 服务器提供资产。

于 2013-11-09T22:31:57.110 回答