Подтвердить что ты не робот

IOS6 - Как очистить кеш экрана/автономного веб-приложения?

Похоже, что Apple изменила подход к работе с домашними/автономными веб-приложениями в iOS 6. Согласно различным сообщениям в блоге (пример), эти приложения теперь получают свои собственные выделенное пространство для хранения своих кэшированных файлов, sqllite dbs, локального хранилища и т.д., а не совместного использования с браузером Safari, как раньше.

До разработки iOS 6 при разработке я использовал для этой процедуры следующую процедуру, чтобы очистить кеш...

  • Удалить приложение с рабочего стола.
  • Закройте все страницы/вкладки в Safari.
  • Наконец, "Очистить файлы cookie и данные" или "Очистить данные" в "Настройки" > "Сафари".

К сожалению, теперь, когда Apple переместила сообщения цели, эта же процедура, похоже, не работает. После очистки, даже несмотря на то, что мои изменения забираются в Safari, когда я добавляю на рабочий стол и запускаю приложение, старый HTML, JS и т.д. Все еще подбирается.

Кто-нибудь знает, как надежно полностью очистить кеш в iOS 6?

4b9b3361

Ответ 1

Я не могу проверить корректность очистки кэша, но это сработало для меня:

Чтобы сделать это, вам нужно разрешить веб-инспектору на вашем устройстве iOS. Перейдите в "Настройки" > "Safari" > "Дополнительно" > "Веб-инспектор" (он должен быть активным) И вам нужно активировать меню разработчика на вашем компьютере Safari. Перейдите в меню "Настройки" > "Дополнительно" > "Активировать приложение"

  • Подключите устройство к компьютеру с помощью кабеля USB
  • Перейдите в Safari > Developpement > Имя вашего устройствa > Осмотрите приложение (приложение должно быть запущено)
  • Откроется инспектор на вашем компьютере для веб-приложения.
  • Пока открыт инспектор Очистить кеш (команда + alt + E)
  • Если инспектор по-прежнему открывает обновленную страницу на вашем компьютере (команда + R)

Как-то кэш Webapp очистился, и я получил не кешированный код.

Ответ 2

Я нашел работу. Просто поместите ссылку на веб-страницу для пользователей, у которых возникли проблемы с просмотром новой версии...

<a href="javascript:top.frames.location.reload();">refresh</a>

Он работает так же, как кнопка обновления iPhone/iPad в адресной строке!

Ответ 3

Сначала подключите телефон к компьютеру, затем откройте веб-приложение на телефоне и Safari на компьютере, затем вы можете открыть веб-инспектора в Safari в меню "Разработкa > Название телефонa > название приложения" (если вы не видите меню разработки, которое вы можете включить в настройках Safari).

Оттуда вы можете увидеть/отредактировать файлы cookie и локальное хранилище, как и сайты на вашем компьютере, и нажать команду + r, в то время как инспектор будет сфокусирован, перезагрузит приложение на телефоне.

Ответ 4

Вы можете подключить свое устройство и открыть веб-инспектор Safari на своем компьютере и запустить document.location.reload() на вкладке консоли, чтобы перезагрузить страницу.

Перед перезагрузкой вы можете нажать Option + Command + E, чтобы очистить кеш.

Вместо вы можете нажать Shift + Command + R, чтобы перезагрузить страницу без кеша, но иногда она не работала для меня.

Ответ 5

Попробуйте добавить уникальный тег GET к концам всех и всех атрибутов href, например:

<link rel="stylesheet" type="text/css" href="/css/global.css?
   <?php echo(mt_rand(10000000, 99999999)); ?>
" />

Это приведет к генерации href="/css/global.css?########" с различным числом почти каждый раз. Это заставляет iOS "Safari вытаскивать" новую "страницу вниз, поскольку в ее кеше нет данных, исходящих из одного и того же URI, и их, вероятно, никогда не будет (если вы не планируете перезагружать приложение в миллионы раз во время разработки: D)

Ответ 6

Единственный способ справиться с этим в настоящее время - это подождать, но есть обходное решение. Если вы измените имя файла, он вытащит новый код. Однако, если вы измените его на прежнее имя до очистки кеша, будет использоваться старый код. Кэш обновляется периодически и в конечном итоге будет обновляться. Я просто это случилось со мной с CSS файлом, который отказался меняться. Время исправит его, но если вам просто нужно его обновить для тестирования, смена имени будет работать.

Ответ 7

Если на устройстве iOS6 установлен джейлбрейк, вы можете использовать ssh для удаления содержимого папки "/private/var/mobile/Library/Caches/com.apple.webapp".

В следующий раз, когда вы запустите веб-приложение, все файлы будут повторно загружены с веб-сервера.

Ответ 8

Это немного помолодело. Пробовал очистить кеш на устройстве - не повезло. Переименование страницы действительно помогло, но как только вы переименуете ее, вы все равно получите ту же устаревшую версию. Нашел решение вчера. Вам нужно подключить свое устройство к Mac и открыть веб-инспектор в меню Safari Develop. Когда-нибудь в веб-инспекторе просто нажмите кнопку "Обновить страницу" на панели инструментов "Инспектор" и - вуаля - вы увидите новую версию на экране вашего устройства.

Ответ 9

Просто установите запрос, который вы передаете веб-просмотру, в NSURLRequestReloadIgnoringLocalCacheData​​p >

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[self.webView loadRequest:request];