2013-04-05 83 views
2

我正在使用Titanium爲Android創建應用程序。該應用使用webview加載外部HTML5網頁。網頁使用清單緩存頁面和一些資產。這適用於Android(Chrome)中的桌面瀏覽器和第三方應用程序瀏覽器。Ttitanium webview和HTML5應用程序緩存

當我在Titanium構建應用程序的webview中查看頁面時,似乎沒有使用清單,頁面只是加載服務器上的所有內容。當我在我的手機瀏覽器(HTC One X)中使用該版本時,也會出現同樣的問題。

我試圖完成的是頁面可以離線使用,因此不需要互聯網瀏覽緩存頁面。有沒有解決這個問題,或者我應該去另一個方向去解決我的問題?

清單文件:

CACHE MANIFEST 
# version 1 

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

NETWORK: 
* 

回答

0

爲了防止其他人在我遇到的同樣的問題上運行,這裏是我所做的。 HTML5的應用程序緩存似乎無法在Android的內置瀏覽器以及webviews中使用。在Titanium中,似乎沒有辦法控制webview來啓用應用程序緩存。

我的工作是使用Titanium和它的httpClient函數(Titanium.Network.HTTPClient)來請求文件(HTML,CSS,JavaScript)並將其存儲在本地應用程序文件系統(Titanium.Filesystem)中。

0

第一:鈦提供比的WebView得多。如果您計劃僅顯示網頁,則可能應該查看PhoneGap/Cordova,它可能會更好地滿足您的需求。


正如你已經注意到並非所有的瀏覽器都支持HTML5緩存功能如預期。我不能說它一般不適用於Android,或者僅適用於特定版本,因爲WebKit通常支持它,但它取決於使用的WebKit版本。這可能會有所不同。

編輯:看來,(在原生android)這個功能可以被啓用寫在這裏:Application cache in HTML5 doesn't work in Android PhoneGap application。目前在Titanium中是不可能的(可能會有非官方的調整,我不知道,但從http://docs.appcelerator.com這是不可能的)。

我個人更喜歡另一種解決方案。如果沒有網絡連接,請自行緩存數據並顯示它。 但是這取決於你試圖達到的目標。沒有經常改變的內容很少,這是有道理的。在動態更改數據(例如Twitter流)時,這會很困難。還取決於您的用戶以及他們想要訪問您的應用的位置。

還有一個懸而未決的問題:當你想使用所有的緩存功能,你爲什麼要創建一個應用程序?創建簡單的移動網頁可以完成同樣的工作。創建應用程序時,我不會使用HTML 5的緩存功能。您應該將所有靜態資源保留在您的應用程序中,並簡單地從網絡加載數據。這可以通過Titanium和PhoneGap/Cordova來實現。 Titanium對於原生UI和一些本地特性更爲有用,而PhoneGap/Cordova則更適合基於HTML5的佈局。

+0

感謝您的回覆,我一直在考慮不使用HTML5緩存,而是使用Titanium代替。 – user2210902 2013-04-05 14:05:29

相關問題