首页 文章

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

提问于
浏览
1

我正在尝试从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 回答

  • 1

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

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

    从这里重写您的网址:

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

    至:

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

相关问题