如何让iOS使用查询参数缓存HTML5文档?

时间:2011-11-16 15:55:27

标签: ios html5 mobile-safari manifest

我正在尝试从iOS应用打开移动版Safari以使用openURL打开离线HTML5应用:

NSString * urlString = [NSString stringWithFormat:@“http:// localhost:8080 / blargh.html”]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

blargh.html有一个HTML5清单:

该清单包含html文件: CACHE MANIFEST blargh.html

这一切都按预期工作,当我从我的iOS应用程序打开URL时,它被正确缓存并脱机工作。但是,如果我包含动态cgi参数,那么它不会正确缓存:

NSString * urlString = [NSString stringWithFormat:@“http:// localhost:8080 / blargh.html?q = p”]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

这基本上意味着我无法从iOS应用程序中打开离线HTML5应用程序并将其传递给params并正确缓存。我需要在移动safari中打开应用程序而不是webview,原因超出了这篇文章。据我所知,没有办法通过openURL发送邮件参数。我希望移动safari的缓存系统足够聪明,可以忽略cgi params。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

查询参数删除应用程序缓存,因为它用于静态内容。通常的方法是加载静态页面,然后使用JavaScript动态填充它,缓存DOM Storage中的任何数据,以便您也可以脱机使用它。

但是,如果您只需要缓存一个文件并且您的服务器支持路由或URL re-writing,那么您可以利用包含appcache文件链接的页面的事实总是被缓存,所以不必在清单中列出。

从此处重写您的网址:

http://localhost:8080/blargh.html?q=p

要:

http://localhost:8080/blargh.html/q/p