“添加到主屏幕”移动Web应用程序中的HTML5缓存清单似乎无效

| 我正在开发一个连接到在线数据库的移动Web应用程序,并从该数据库中的数据加载到离线的本地mysqlite数据库中,然后应该可以离线使用。 我使整个数据库工作正常,但是该应用程序仍无法离线使用,因为它无法正确缓存所有资源。 我的清单如下所示:
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无法打开,因为它未连接到Internet \”(在iPad上的“添加到主屏幕”中) 和 \“ Safari无法打开该页面,因为它未连接到互联网\”(在同一iPad上的野生动物园视图中) 我已经采取的步骤: 通过将清单添加到我的.htaccess文件中,确保清单由正确的内容类型提供
AddType text/cache-manifest .manifest
任何想法为什么这不起作用?     
已邀请:
对于iPad,缓存清单文件必须命名为\“ cache.manifest \”。这为我解决了这个问题。     
如果您要连接到在线资源,则希望在“网络”部分中看到该资源的URL。应用程序访问的每个URL需要在清单中显式或隐式列出。 尝试添加:
NETWORK:
*
表示在线时可能会访问任何URL。     
资源必须在CACHE部分下。请参阅http://www.html5rocks.com/zh-CN/tutorials/appcache/beginner/     
我很好奇Liz Daly的回答。我正在使用一个iPad(我很遗憾)将它从iOS 4.2更新到了iOS 4.3。我有一个运行良好的HTML5脱机应用程序,它可以从主屏幕运行而无需Internet连接,并且可以将状态保存到localStorage存储中。 在我将iPad更新到iOS 4.3之后,此应用程序现在无法正常工作,除非每次从主屏幕启动页面时都没有Internet连接来重新加载页面,而且,当我关闭iPad电源时,localStorage也会消失。 因此,我在Safari上在iPad上的iOS 4.3上运行脱机应用程序时遇到了Safari的真正问题,并且当他们打算解决此问题时,Apple没有任何消息(至少将其还原回iOS 4.2中的相同功能) 。     
更新到我以前的帖子。现在,我可以在iPad上运行HTML5离线应用了。首先,我认为您需要将iPad至少更新到4.3.2(未经确认,但我现在正在使用4.3.3)。更重要的是,缓存清单文件必须命名为\“ cache.manifest \”。在我的实验中,如果您使用任何其他名称,那么它将不会脱机运行。我的离线状态以全屏模式运行(即,将\“ apple-mobile-web-app-capable \”设置为\“ yes \”),它将在航空公司模式下从主屏幕运行。 所以Liz Daly是部分正确的人。脱机模式似乎仅在上述约束下有效。     
我在iPad上遇到了同样的问题。原来,它不喜欢在文件夹中缓存清单文件。我只有3英镑,但它无法正常工作(离线时该应用无法从主屏幕加载)。当我将清单文件移至应用程序根目录并将清单引用更改为“ 4”时,它开始工作。 (它不必称为
cache.manifest
-我可以与
CacheManifest.ashx
一起使用)     
我了解在iOS 4.3中,HTML 5“离线网络应用”功能已损坏: http://www.theregister.co.uk/2011/03/15/apple_ios_throttles_web_apps_on_home_screen/   而且,此类“主屏幕Web应用程序”不能使用各种Web缓存系统,包括HTML5 Application Cache,这意味着它们不能被缓存以脱机运行。 另请参阅: 离线iOS网络应用:加载我的清单,但不能离线使用     

要回复问题请先登录注册