Как удалить кеш WKWebview в iOS8?

Как удалить кеш WKWebview в iOS8? Для iOS 9 Ниже приведен код.

let websiteDataTypes = NSSet(array: [WKWebsiteDataTypeDiskCache, WKWebsiteDataTypeMemoryCache, WKWebsiteDataTypeCookies]) let date = NSDate(timeIntervalSince1970: 0) WKWebsiteDataStore.defaultDataStore().removeDataOfTypes(websiteDataTypes as! Set<String>, modifiedSince: date, completionHandler:{ }) 

Для iOS 8 я пробовал решения в следующих ссылках, но Cache не удалялся.

https://github.com/ShingoFukuyama/WKWebViewTips#cookie-cache-credential-webkit-data-cannot-easily-delete

Как удалить кеш в WKWebview?

удалить кеш в wkwebview цели c

Как удалить cookie WKWebview

http://blogs.candoerz.com/question/128462/how-to-delete-wkwebview-cookies.aspx

http://atmarkplant.com/ios-wkwebview-tips/

Буду признателен за вашу помощь.

Я работаю над браузером для iOS и хочу поделиться своим опытом в этом вопросе.

Прежде всего, все веб-просмотры в нашем браузере связаны между собой через единый processPool. Это приводит к совместному использованию файлов cookie между всеми webView. Для этого мы устанавливаем тот же processPool в WKWebViewConfiguration, который передается вновь созданному webView:

  WKWebViewConfiguration* configuration = [[WKWebViewConfiguration alloc] init]; configuration.processPool = self.processPool; WKWebView* webView = [[WKWebView alloc] initWithFrame:frame configuration:configuration]; 

Во-вторых, процесс удаления данных выглядит следующим образом:

  1. Удалить все созданные webViews

  2. Удаление каталогов с помощью кеша / файлов cookie

  3. Создание нового пула процессов

  4. Повторное создание webView с новым пулом процессов

Если у вас есть 1 webView, весь процесс должен выглядеть так:

 - (void)clearWebViewData { [self.webView removeFromSuperview]; self.webView = nil; NSFileManager* fileManager = [NSFileManager defaultManager]; NSURL* libraryURL = [fileManager URLForDirectory:NSLibraryDirectory inDomain:NSUserDomainMask appropriateForURL:NULL create:NO error:NULL]; NSURL* cookiesURL = [libraryURL URLByAppendingPathComponent:@"Cookies" isDirectory:YES]; [fileManager removeItemAtURL:cookiesURL error:nil]; NSURL* webKitDataURL = [libraryURL URLByAppendingPathComponent:@"WebKit" isDirectory:YES]; NSURL* websiteDataURL = [webKitDataURL URLByAppendingPathComponent:@"WebsiteData" isDirectory:YES]; NSURL* localStorageURL = [websiteDataURL URLByAppendingPathComponent:@"LocalStorage" isDirectory:YES]; NSURL* webSQLStorageURL = [websiteDataURL URLByAppendingPathComponent:@"WebSQL" isDirectory:YES]; NSURL* indexedDBStorageURL = [websiteDataURL URLByAppendingPathComponent:@"IndexedDB" isDirectory:YES]; NSURL* mediaKeyStorageURL = [websiteDataURL URLByAppendingPathComponent:@"MediaKeys" isDirectory:YES]; [fileManager removeItemAtURL:localStorageURL error:nil]; [fileManager removeItemAtURL:webSQLStorageURL error:nil]; [fileManager removeItemAtURL:indexedDBStorageURL error:nil]; [fileManager removeItemAtURL:mediaKeyStorageURL error:nil]; WKWebViewConfiguration* configuration = [[WKWebViewConfiguration alloc] init]; configuration.processPool = [[WKProcessPool alloc] init]; self.webView = [[WKWebView alloc] initWithFrame:frame configuration:configuration]; [self.webView loadRequest:request]; } 

Я хочу обратить ваше внимание, что этот код работает только на устройстве в iOS 8.x. Он вообще не работает в симуляторе.

  • Проблема перенаправления WKWebView по сравнению с UIWebView
  • WKWebView отображает контент неправильно после изменения ориентации
  • Что может привести к тому, что действия UIAlertController никогда не будут вызваны?
  • копирование файлов cookie между WKWebView и HTTPCookieStorage - не поиск 302 файлов cookie
  • Полный URL WKWebView
  • WKWebView не изменяет размер при изменении контента
  • WKWebView не открывается НЕКОТОРЫЕ target = "_ blank" ссылки
  • Как получить файлы cookie из WKWebView?
  • Использование пользовательских шрифтов в WKWebView
  • Ускорьте загрузку WKWebView
  • Почему WKWebView не отображает видео? - Swift 3
  • Interesting Posts
    Давайте будем гением компьютера.