Tak*_*ako 7 javascript html5-appcache cordova cordova-3
我正在使用Cordova(3.4)开发移动应用程序.我的核心应用程序文件嵌入在我的应用程序存档(.apk或.ipa)中,并且必须从我的服务器检索一些文件(js/html/css).因此,如果我希望我的应用程序可以脱机使用,我需要使用appcache来处理这些文件.
我appcache.manifest的一个示例:
CACHE MANIFEST
# version 7
NETWORK:
*
http://*
https://*
CACHE:
# Message module
http://my.server.ip/module/routes.json
http://my.server.ip/module/css/style.css
http://my.server.ip/module/js/controller.js
http://my.server.ip/module/js/service.js
...
Run Code Online (Sandbox Code Playgroud)
我的index.html(嵌入到我的应用中):
<!DOCTYPE html>
<html lang="en" xmlns:ng="http://angularjs.org" id="ng-app" ng-app="app"
manifest="http://my.server.ip/tmp_appcache.manifest">
...
<body>
<script>
document.addEventListener("deviceready", function(e) {
var appCache = window.applicationCache;
alert('device ready');
console.log('appCache', appCache);
// Fired after the first cache of the manifest.
appCache.addEventListener('cached', function(event) {
console.log(event);
alert('Appcache OK');
}, false);
appCache.addEventListener('UpdateReady', function(event) {
console.log(event);
alert('Appcache Reloaded');
}, false);
appCache.addEventListener('error', function(event) {
console.log(event);
alert('Appcache ERROR');
}, false);
appCache.addEventListener('checking', function(event) {
console.log(event);
alert('Appcache CHECKING');
}, false);
appCache.addEventListener('downloading', function(event) {
console.log(event);
alert('Appcache DOWNLOADING');
}, false);
appCache.addEventListener('noupdate', function(event) {
console.log(event);
alert('Appcache NOUPDATE');
}, false);
appCache.addEventListener('obsolete', function(event) {
console.log(event);
alert('Appcache OBSOLETE');
}, false);
}, false);
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我启动我的pp(在Android和iOS上)时,我没有看到任何警报(除了"设备就绪"),并且没有缓存文件.
如果我在设备浏览器中打开我的webapp的URL,我实际上会看到我的警报.
在Phonegap中是否有其他配置可以实现appcache?
我已经看过一些关于在Android中启用appcache的文章,但它似乎适用于旧版本的cordova,而且它对我不起作用,如果它是我的问题的根源,appcache应该适用于iOS.
任何想法都会有所帮助.谢谢