首页 文章

Ttitanium webview和HTML5应用程序缓存

提问于
浏览
2

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

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

我想要完成的是页面可以脱机使用,因此查看缓存页面不需要互联网 . 是否有解决此问题的方法,或者我应该从另一个方向去解决我的问题?

清单文件:

CACHE MANIFEST
# version 1 

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

NETWORK:
*

2 回答

  • 0

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


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

    EDIT: 似乎(在原生android中)此功能可以像这里所写的那样启用:Application cache in HTML5 doesn't work in Android PhoneGap application . 目前这在Titanium中是不可能的(可能有一些我不知道的官方调整,但是从http://docs.appcelerator.com这是不可能的) .

    我个人更喜欢另一种解决方案 . 我自己缓存数据,如果没有网络连接则显示数据 . But 这取决于你想要达到的目标 . 几乎没有经常变化的内容这是有道理的 . 拥有动态变化的数据(例如twitter流)这将很困难 . 此外,它还取决于您的用户以及他们想要访问您的应用的位置 .

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

  • 0

    为了防止其他人遇到我面临的同样问题,这就是我所做的 . HTML5的应用程序缓存似乎不适用于Android的内置浏览器以及webview . 在Titanium中似乎没有办法控制webview以启用应用程序缓存 .

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

相关问题