防止在Android中的浏览器实例中进行缓存(使用zxing)

时间:2012-02-08 11:54:12

标签: android caching redirect zxing

我正在尝试阻止Android缓存重定向的网页。我很成功,但在涉及条形码阅读*的异常情况下有一种失败模式。我很感激帮助了解正在发生的事情。

我的情景是:

(1)将常量网址放在QR码(http://en.wikipedia.org/wiki/QR_code)中,假设它是http://foo.com/bar

(2)在服务器上,当该URL上的GET到达时,使用缓存控制头重定向,如此(请原谅PHP: - )):

header("Cache-Control: no-store, no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Pragma: no-cache");
header('Location: ' . generateAOneTimeURL(), TRUE, 307 ); 

(3)此外,当从任何此类一次性URL提供内容时,我在其META标记中使用相同的缓存控制头。

(4)我正在使用Android自己的条码扫描器zxing。这将显示它从条形码中读取的URL,作为用户单击以查看网页的超链接。

(5)如果用户点击Android的后退按钮返回扫描模式并再次扫描相同的条形码,一切正常:当用户再次点击相同的URL时,他们会被重定向到新的一次性URL ,按照预期。

(6)但是,如果用户按下Android的主页按钮,再次点击条形码扫描器应用程序,则忽略上述指令:

(A)用户会在上一个一次性网址

上显示一个页面

(B)对该网址执行另一次GET操作,它只显示该网址之前显示的内容。

我是否遗漏了一个可能对我有帮助的缓存控制指令,或者这是一个特殊的(错误?)如何从同一个应用程序的不同实例处理点击URL?

提前致谢。

*重要的是它是一个推出webview的应用程序,而不是它本身就是zxing条形码阅读器。

0 个答案:

没有答案