Включить кеш приложений в WKWebView

Я знаю, что кеш офлайн-приложений не поддерживается в iOS WKWebView.

Это включено в Safari, поэтому я искал проект webkit для ответственного кода и нашел это

WKPreferences

- (void)_setOfflineApplicationCacheIsEnabled:(BOOL)offlineApplicationCacheIsEnabled; 

Кто-нибудь знаком с этим методом? возможно ли включить кеш приложения в iOS, обратившись к этим приватным методам? (Я не собираюсь отправлять приложение в Appstore)

2 Solutions collect form web for “Включить кеш приложений в WKWebView”

Да, мы можем включить кеш App, обратившись к частному API

Создайте категорию для WKPreferences и добавьте следующую подпись метода.

 @interface WKPreferences (MyPreferences) - (void)_setOfflineApplicationCacheIsEnabled:(BOOL)offlineApplicationCacheIsEnabled; @end 

(Я попытался выполнить выбор: withObject: но это не сработало. Не знаю, почему)

После инициализации WKWebView включите appcache, вызвав вышеуказанный метод в следующем объекте

  [_wkWebView.configuration.preferences _setOfflineApplicationCacheIsEnabled:YES]; 

Он создаст файл ApplicationCache.db в каталоге Cache и позволит веб-приложению работать в автономном режиме.

Предупреждение:

2.5. Приложения, использующие непубличные API, будут отклонены

Согласно этому твиту от Apple, начиная с iOS 10, кэш приложений теперь поддерживается в WKWebView :

https://twitter.com/andersca/status/743259582252879872

… как этот отчет об ошибке WebKit:

https://bugs.webkit.org/show_bug.cgi?id=152490

Я тестировал это в WKWebView с помощью этого сайта:

http://webdbg.com/test/appcache/

и может подтвердить, что он работает как ожидалось как в iOS Simulator, так и на устройствах под управлением iOS 10.

  • Как очистить историю в WKWebView?
  • Установить useragent в WKWebview
  • Войдите в Facebook Комментарии iOS (swift) не отвечает
  • WKWebView показывает результат поиска Google как raw html
  • WKWebView заставляет мой контроллер просмотра протекать
  • Поддержка HTTP-прокси с помощью WKWebView
  • быстро, как выполнить javascript после ангулярной визуализации страницы?
  • После деинсталляции webView видео, встроенное в webView, все еще играет - iOS
  • Очистка файлов cookie для WKWebView на iOS 8.4
  • неожиданно найдено нуль при развертывании необязательного значения Параметры WKWebView get
  • Кэш для WKWebView
  • Interesting Posts

    Xcode 9: документация и инструментальные узлы, которые не отображаются в настройках> Компоненты

    AVAudioPlayer initWithContentsOfURL возвращает nil для файлов AAC / M4A

    невозможно копировать символы с этого устройства

    Синхронизировать вложенную асинхронную задачу

    Как я могу сделать образ запуска iPhone легко?

    Вложенное привязку RestKit к определенному элементу массива

    Показывать полосу прокрутки в UITableView до того, как таблица будет перенесена. В некотором роде UIScrollBar всегда должен быть видимым

    Можно ли переместить индекс UITableView?

    iOS Swift 3: преобразовать строку формата "yyyy-MM-dd'T'HH: mm: ssZ" на сегодняшний день

    FFmpeg для iOS5

    Поворот области предварительного просмотра видео AV и других элементов при использовании AV Foundation

    Инициализировать и запустить NSThread с помощью target & selector

    -canOpenURL: не удалось URL: "fbauth2: /" – error: "(null)"

    Как избежать символов и исходных путей в двоичном формате iOS?

    Xcode 9 – Исправить все в области Scope greyed out

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.