Запретить кэширование между экземплярами браузера в Android (используя zxing) - PullRequest
2 голосов
/ 08 февраля 2012

Я пытаюсь предотвратить кеширование Android перенаправленных веб-страниц. Я в основном успешен, но в необычных обстоятельствах, связанных со считыванием штрих-кода, есть режим сбоя *. Буду признателен за помощь в понимании происходящего.

Мой сценарий:

(1) Поместите постоянный URL в QR-код (http://en.wikipedia.org/wiki/QR_code), скажем, это http://foo.com/bar.

(2) На сервере, когда прибывает GET для этого URL, перенаправить с заголовками управления кэшем, как это (извините 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) Пользователю показывается страница по предыдущему одноразовому URL

(B) Он не делает еще один GET для этого URL, он просто показывает, что этот URL показывал раньше.

Мне не хватает директивы управления кэшем, которая может мне помочь, или это особенность (ошибка?) Того, как обрабатываются клики по URL-адресам из разных экземпляров одного и того же приложения?

Заранее спасибо.

Тим

* Важной частью является то, что это приложение, из которого запускается веб-просмотр, а не считыватель штрих-кода zxing как таковой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...