2011-04-13 63 views
9

我正在使用连接到在线数据库的移动Web应用程序,在脱机本地mysqlite数据库中加载数据库中的数据,然后应该可以离线使用。 我得到了整个数据库的工作,但应用程序仍然不可用脱机,因为它不会正确缓存所有资源。“添加到主屏幕”移动Web应用程序中的HTML5缓存清单似乎不起作用

我的清单看起来像这样:

CACHE MANIFEST 
# Cache manifest version 0.0.5 

http://www.mywebsite.com/appfolder/app/detail.html 
http://www.mywebsite.com/appfolder/app/index.html 
http://www.mywebsite.com/appfolder/app/list.html 
http://www.mywebsite.com/appfolder/css/style.css 
http://www.mywebsite.com/appfolder/src/iscroll.js 
http://www.mywebsite.com/appfolder/js/jquery-1.5.1.min.js 
http://www.mywebsite.com/appfolder/thumbs/1872A.jpg 
http://www.mywebsite.com/appfolder/thumbs/1913.jpg 
http://www.mywebsite.com/appfolder/thumbs/1916.jpg 
http://www.mywebsite.com/appfolder/thumbs/1925.jpg 
http://www.mywebsite.com/appfolder/carsimages/1872A_1.jpg 
http://www.mywebsite.com/appfolder/carsimages/1872A_2.jpg 

NETWORK: 

# All URLs that start with the following lines 
# are whitelisted. 

CACHE: 

# Additional items to cache. 

FALLBACK: 

该应用程序运行速度流畅,同时在线,但一旦我下线,我得到这些错误信息:“Myappname无法打开,因为它没有连接到互联网” (在“添加到主屏幕”在iPad上 - 视图)(就在同iPad的Safari中视) 和 “因为它没有连接到互联网,Safari无法打开网页”

步骤,我已经花了: 确保清单通过添加正确的内容类型这对我的.htaccess文件

AddType text/cache-manifest .manifest 

任何想法,为什么这是行不通的?

+0

有没有人在离线模式缓存和主屏幕HTML5 webapps v4.3中看到明确的答案?我已经尝试了这个线程中的所有补救措施,但没有运气。它是否损坏或是否有解决方法? – 2011-06-01 15:37:09

+0

杰夫,试试我做了什么:http://stackoverflow.com/questions/5645798/html5-cache-manifest-in-an-added-to-homescreen-mobile-webapp-doesnt-seem-to-wo/7022283# 7022283 – Muxa 2011-08-11 07:28:08

+0

你有这个工作吗?我可以问一下当用户点击链接时你是如何停止打开Safari浏览器的主屏幕应用的? – Steve 2011-08-25 02:34:16

回答

1

如果您要连接到在线资源,我希望在NETWORK部分中看到该资源的URL。应用程序访问的每个URL都需要在清单中显式或隐式列出。

尝试增加:

NETWORK: 
* 

为了表明任何URL可能潜在地同时在线访问。

+0

这不是说没有任何东西可以脱机访问吗? – 2011-05-13 18:49:02

+0

只有在CACHE部分下没有任何内容。 – Muxa 2011-08-11 07:30:23

-3

据我所知,在IOS 4.3的HTML 5 “离线Web应用程序” 功能被打破:

http://www.theregister.co.uk/2011/03/15/apple_ios_throttles_web_apps_on_home_screen/

更重要的是,这样的 “主屏幕Web应用程序” 不能使用各种Web缓存系统,包括HTML5应用程序缓存,这意味着它们不能被缓存以脱机运行。

另见: Offline iOS web app: loads my manifest, but doesn't work offline

+1

那篇文章充满了错误信息。在所有iOS版本中,脱机缓存均可在全屏模式下正常工作 - 我的应用程序使用它。 – 2011-04-13 13:06:59

0

我很好奇利兹达利的答案。我正在使用iPad,我只是(很遗憾地)从iOS 4.2更新到iOS 4.3。我有一个HTML5离线应用程序正常工作,可以从主屏幕运行,而无需Internet连接,并能够将状态保存到localStorage商店。

当我将iPad更新到iOS 4.3后,现在这个应用程序现在无法在每次从主屏幕启动时重新加载页面而无法连接到互联网,并且localStorage在关闭电源时也会被清除iPad。

因此,我在iPad上运行iOS 4.3上的离线应用程序时遇到了真正的问题,并且在他们要解决此问题时没有来自Apple的消息(至少将其恢复到相同的功能在iOS 4.2中)。

0

更新到我以前的帖子。我现在可以在iPad上运行我的HTML5离线应用程序。首先我相信你需要更新iPad至少4.3.2(未经证实,但我现在正在使用4.3.3)。更重要的是,缓存清单文件必须命名为“cache.manifest”。在我的实验中,如果您使用任何其他名称,那么它将不会脱机。我有我的离线在全屏模式下运行(即设置“苹果手机网络应用程序功能”为“是”),它将从航空模式的主屏幕运行。

So Liz Daly部分正确。离线模式似乎只能在上述限制条件下才能使用。

+0

我的应用程序的缓存文件没有命名为cache.manifest。 – 2011-05-11 02:44:18

+0

调用清单缓存.manifest并没有帮助我。据我所知,我正在做的一切正确,包括设置MIME类型。 – 2011-05-13 17:54:26

+0

我有4.3.2的iPad,有同样的问题。以下是我的工作原理:http://stackoverflow.com/questions/5645798/html5-cache-manifest-in-an-added-to-homescreen-mobile-webapp-doesnt-seem-to-wo/7022283#7022283 – Muxa 2011-08-11 07:29:39

14

对于iPad,缓存清单文件必须命名为“cache.manifest”。这解决了我的问题。

+1

+1我惊讶地发现这也适用于我,我已经验证了iPad获取我的清单并对其执行操作(我添加了一些文件,我的应用程序没有实际参考,并且它们出现在服务器日志中)。 – 2011-12-30 15:08:07

+0

好吧,我现在在多个项目上工作,没有设置特定的名称。我将尝试找出这个特定项目出了什么问题。 – 2012-03-02 23:50:42

0

我在iPad上遇到了同样的问题。原来,它不喜欢文件夹中的缓存清单文件。我有/Content/cache.manifest,它不工作(离线时,应用程序不会从主屏幕加载)。当我将清单文件移动到应用程序根目录并将清单参考更改为cache.manifest时,它开始工作。

(它没有被称为cache.manifest - 我有它与CacheManifest.ashx工作)

相关问题