Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让iOS使用查询参数缓存HTML5文档?_Ios_Html_Mobile Safari_Manifest - Fatal编程技术网

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

如何让iOS使用查询参数缓存HTML5文档?,ios,html,mobile-safari,manifest,Ios,Html,Mobile Safari,Manifest,我正在尝试从iOS应用程序打开mobile safari,以使用openURL打开脱机HTML5应用程序: NSString*urlString=[NSString stringWithFormat:@]http://localhost:8080/blargh.html"]; [[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlString]] blargh.html有一个HTML5清单: 该清单包含html文件:

我正在尝试从iOS应用程序打开mobile safari,以使用openURL打开脱机HTML5应用程序:

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

blargh.html有一个HTML5清单:

该清单包含html文件: 缓存清单 blargh.html

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

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

这基本上意味着我不能从iOS应用程序中打开一个离线HTML5应用程序,并传递它的参数,让它正确缓存。我需要在mobile safari中打开应用程序,而不是Web视图,原因超出了本文的范围。据我所知,没有办法通过openURL发送post参数。我希望MobileSafari的缓存系统足够聪明,可以忽略cgi参数


有什么建议吗?

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

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

从以下位置重新写入您的URL:

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


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

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

从以下位置重新写入您的URL:

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


在ios中,我只能使用URL打开mobile safari,我需要通过该URL将参数传递给mobile safari(我看不到任何其他方法可以让mobile safari知道这些参数)。但我对服务器端的重写有何帮助感到困惑。我试图让浏览器在客户端完全处理请求,而不向服务器请求任何内容(当然,在第一次加载之后。因此,如果我在客户端请求,这意味着appcache将很高兴地从中提供服务?@MarkCorner No,它将很高兴地从
http://localhost:8080/blarg.html/q/p
-这就是重点,它采用参数并使它们看起来像一个文件。这就是我所说的“如果你st需要缓存一个文件。如果不清楚为什么这样做可能会有帮助,也许你可以在问题中更清楚地说明你想要什么?同一个用户是否需要相同的页面但参数不同?是的,很抱歉,不清楚,同一个用户将需要具有不同参数的同一页面,因此该解决方案似乎不适用ork…也许我还缺少其他一些iOS技巧。@MarkCorner我不这么认为,如果涉及动态数据,请使用DOM存储,如我第一次提到的。使用片段标识符而不是查询,使用JavaScript从中读取变量。在iOS中,我只能使用URL打开mobile safari,我需要将参数传递给mobile saf通过该URL进行ari(我看不到任何其他方法可以让mobile safari知道这些参数)。但我对服务器端重写的帮助感到困惑。我试图让浏览器在客户端完全处理请求,而不向服务器请求任何内容(当然,在第一次加载之后。因此,如果我在客户端请求,这意味着appcache将很高兴地从中提供服务?@MarkCorner No,它将很高兴地从
http://localhost:8080/blarg.html/q/p
-这就是重点,它采用参数并使它们看起来像一个文件。这就是我所说的“如果你st需要缓存一个文件。如果不清楚为什么这样做可能会有帮助,也许你可以在问题中更清楚地说明你想要什么?同一个用户是否需要相同的页面但参数不同?是的,很抱歉,不清楚,同一个用户将需要具有不同参数的同一页面,因此该解决方案似乎不适用ork…也许我还缺少其他一些iOS技巧。@MarkCorner我不这么认为,如果涉及到动态数据,请使用DOM存储,如我第一次提到的。使用片段标识符而不是查询,使用JavaScript从中读取变量。