2

我正在使用 Titanium 为 Android 创建一个应用程序。该应用程序使用 webview 加载外部 HTML5 网页。网页使用清单来缓存页面和一些资产。这适用于 Android (Chrome) 中的桌面浏览器和第三方应用程序浏览器。

当我在 Titanium 构建应用程序的 web 视图中查看页面时,似乎没有使用清单,页面只是从服务器加载所有内容。当我使用手机的内置浏览器(HTC one X)时,也会出现同样的问题。

我想要完成的是页面离线可用,因此不需要互联网来查看缓存页面。是否有解决此问题的方法,或者我应该转向另一个方向来解决我的问题?

清单文件:

CACHE MANIFEST
# version 1 

leerlingen.html
jquery.js
style.css
handler.js

NETWORK:
*
4

2 回答 2

0

第一:Titanium 提供的不仅仅是 WebView。如果您打算只显示网页,您可能应该看看 PhoneGap / Cordova,它可能会以更好的方式满足您的需求。


正如您所注意到的,并非所有浏览器都按预期支持 HTML5 缓存功能。我不能说它是否不适用于一般的 Android 或仅适用于您的特定版本,因为 WebKit 通常支持它,但这取决于使用的 WebKit 版本。这可能会有所不同。

编辑:似乎(在本机 android 中)可以启用此功能,如下所示:HTML5 中的应用程序缓存在 Android PhoneGap 应用程序中不起作用。目前这在 Titanium 中是不可能的(可能有我不知道的非官方调整,但从http://docs.appcelerator.com这是不可能的)。

我个人更喜欢另一种解决方案。自行缓存数据,无网络连接时显示。但这取决于您尝试实现的目标。很少有不经常更改的内容,这是有道理的。动态更改数据(例如 twitter 流)这将是困难的。这也取决于您的用户以及他们想要访问您的应用程序的位置。

还有一个悬而未决的问题:当你想使用所有缓存功能时,为什么要创建一个应用程序?创建一个简单的移动网页也可以完成同样的工作。创建应用程序时,我不会使用 HTML 5 的缓存功能。您应该将所有静态资源保留在应用程序中,并简单地从网络加载数据。这可以通过 Titanium 和 PhoneGap / Cordova 来实现。Titanium 对于原生 UI 和一些原生功能更有用,而 PhoneGap / Cordova 更适合基于 HTML5 的布局。

于 2013-04-05T12:39:07.803 回答
0

以防万一其他人遇到与我相同的问题,这就是我所做的。HTML5 的应用程序缓存似乎不适用于 Android 的内置浏览器以及 webviews。在 Titanium 中似乎无法控制 webview 以启用应用程序缓存。

我的解决方法是使用 Titanium 和它的 httpClient 函数(Titanium.Network.HTTPClient)来请求文件(HTML、CSS、javascript)并将其存储在本地应用程序文件系统(Titanium.Filesystem)中。

于 2013-04-16T12:26:37.463 回答