檢查這個網站的基本要求和限制: http://appcachefacts.info/
有跡象表明,防止應用程序緩存當你的文件部署到設備的存儲工作的幾件事情:
Cross-Origin-Policy
:你是引用另一個來源的清單文件 - >不允許
WebKit
:我認爲您的WebView呈現index.html是WebKit支持的(iOs/Android)。我使用桌面PC上的Safari和Chrome進行了一些測試,並發現如果從http://localhost
或file://...
URL處提供index.html,即使清單遵守跨源策略,清單也會被忽略。這會打擊你,因爲在大多數情況下,設備上的本地部署index.html將由file://...
提供服務。
因此,我想出了將清單下載到設備並在我的index.html中引用它的想法。這導致我沒能解決一些其他問題(我的設置是PhoneGap的,jQueryMobile,iOS版):
Mime-Type
:你不能確保清單(從設備的存儲服務)被送達正確的mime類型標題但沒有它們,瀏覽器將忽略清單。
Manifest-URI
:您無法(硬編碼)使用預定義的manifest="uri/to/appCacheManifest.manifest"
屬性分發index.html文件(因爲您需要先從服務器上下載並保存,然後再知道此uri)。此外,您無法操縱通過PhoneGap應用程序(www文件夾)分發的資產以某種方式更改屬性。
到目前爲止,我無法獲得在PhoneGap WebView中工作的清單。我讀過一些文章,人們提到(iOS)WebView無法使用清單文件,但這是不正確的。如果您通過移動瀏覽器導航到Web應用程序並在主屏幕上保存書籤,則iOS會將此網站嵌入到WebView中。我用我的應用程序(由網絡服務器提供;不嵌入PhoneGap)和Manifest工作得很好。
這意味着如果您能夠將「坐在設備的存儲空間」中的文件移動到網絡服務器,並且您將本機WebView設置爲指向該位置,則清單應該可以正常工作。
來源
2012-05-19 16:25:49
hna
有關這方面的消息嗎?看起來不可能。你使用phonegap嗎? – jujule