Можно ли использовать кеш между WKWebViews?

Я WKWebView гибридное приложение iOS вокруг WKWebView . Когда пользователь удаляет ссылку, запрос захватывается, а новый контроллер просмотра помещается в стек навигации. Новый контроллер создает новый WKWebView и загружает существующий запрос. Это позволило приложению «почувствовать» родной, но иметь контент, отображаемый в Интернете.

Используя инструменты отладки Safari, я заметил, что никакие активы не кэшируются между веб-представлениями. Однако, если я повторно запрашиваю что-то в существующем веб-просмотре, все Java-скрипты и CSS помечены как «кэшированные».

Итак, можно ли делиться кешем между экземплярами WKWebView ? Они уже используют один и тот же WKProcessPool для совместного использования файлов cookie .

WKWebView много догоняет. Если вы уже внедрили общий WKProcessPool, вы можете попробовать вручную выбрать и сохранить файлы cookie.

Попробуй это:

  func webView( _ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void ) { assert( self.webView == webView ) decisionHandler( .allow ) guard let httpResponse = navigationResponse.response as? HTTPURLResponse else { return } guard let url = httpResponse.url else { return } let cookies = HTTPCookie.cookies( withResponseHeaderFields: httpResponse.allHeaderFields as! [String : String], for: url ) let _ = cookies.map{ HTTPCookieStorage.shared.setCookie( $0 ) } } 

Очевидно, что вы можете разрешить или отклонить, это просто пример. WKWebView в настоящее время не передает файлы cookie в стандартном хранилище общих файлов cookie, как это делает UIWebView. Это должно решить, что для большинства случаев.

  • Какие типы файлов поддерживаются WKWebView?
  • Поддерживает ли webKit в iOS 11 (бета) поддержку WebRTC?
  • WKWebView зависает при загрузке локальной веб-страницы с определенной настройкой сети.
  • wkwebview требуетсяUserActionForMediaPlayback не работает
  • Разрешить непроверенные сертификаты ssl в WKWebView
  • Веб-страница не отображается с помощью WkWebView и Swift в iOS
  • После деинсталляции webView видео, встроенное в webView, все еще играет - iOS
  • Прозрачный фон для WKWebView
  • Где / когда вызывать contentOffset на WKWebView?
  • как я могу выполнить запрос манифеста с WKWebView
  • Есть ли переопределение для изменения размера текста в реальном времени с использованием WKWebView для загрузки локальных файлов HTML?
  • Interesting Posts

    Сделать вариант покупки покупки iOS

    Каков ключевой путь в пользовательских атрибутах времени выполнения?

    Переупорядочить разделы, строки и строки UITableView между разделами

    Одновременное использование AVAudioRecorder и AvAudioPlayer

    Повторное открытие приложения iOS через Url-схему – сохранение состояния

    Обновлять / отзывать сертификаты распространения ios – влияние на пользователей ad-hoc

    Ошибка массива из-за границы (исключение NSRangeException) в

    Динамически добавленные подпрограммы в UIScrollView не отображаются

    Платформа Facebook Messenger отправляет приветственное сообщение Bot только на рабочий стол

    Создание разделов таблицы с помощью NSFetchedResultsController

    Как получить список друзей Facebook, которые не установили приложение?

    Начало iPad в Пейзаж получает только касание в пределах 768×768

    Сбой данных ядра NSInternalInconsistencyException 'все еще активен'

    Кодировать и декодировать перечисление в Swift 1.2

    Каков наилучший способ добавить тень к моему UIView

    Давайте будем гением компьютера.