我正在尝试从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。
有什么建议吗?
答案 0 :(得分:1)
查询参数删除应用程序缓存,因为它用于静态内容。通常的方法是加载静态页面,然后使用JavaScript动态填充它,缓存DOM Storage中的任何数据,以便您也可以脱机使用它。
但是,如果您只需要缓存一个文件并且您的服务器支持路由或URL re-writing,那么您可以利用包含appcache
文件链接的页面的事实总是被缓存,所以不必在清单中列出。
从此处重写您的网址:
http://localhost:8080/blargh.html?q=p
要:
http://localhost:8080/blargh.html/q/p