我正在尝试从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 回答
查询参数会破坏应用程序缓存,因为它适用于静态内容 . 通常的方法是加载静态页面,然后使用JavaScript动态填充它,缓存DOM Storage中的任何数据,以便您也可以脱机使用它 .
但是,如果您只需要缓存一个文件并且您的服务器支持路由或URL re-writing,那么您可以利用包含指向
appcache
文件的链接的页面始终被缓存的事实,因此本身不必是在清单中列出 .从这里重写您的网址:
至: