Мне нужно поделиться данными при переходе от WKWebView в одном View Controller к новому, который также содержит WKWebView. Технически мы реализуем встроенную навигацию с использованием веб-представлений. Для правильной загрузки второго WKWebView нам нужны файлы cookie и параметры, сохраненные в локальном хранилище первым.
Попытка совместного использования одного и того же websiteDataStore и одного и того же пула процессов между веб-представлениями. Интересно, что куки передаются правильно - мы вошли в сеанс во втором веб-просмотре, а localStorage - нет. Мы могли видеть, что данные локального хранилища присутствуют в первом веб-представлении через отладчик Safari WKWebView, а второе веб-представление имеет пустое локальное хранилище.
Вот код, который мы используем для настройки веб-просмотра. Если мы распечатаем записи данных из хранилища данных веб-сайта, то будут распечатаны файлы cookie, localStorage и sessionStorage, но кажется, что передаются только файлы cookie.
Любые идеи, почему это не работает или как может быть localStorage поделились между веб-просмотров?
- (void)setupWebView
{
WKWebViewConfiguration *webViewConfiguration = [WKWebViewConfiguration new];
webViewConfiguration.websiteDataStore = MBAbstractWebViewController.sharedWebsiteDataStore;
[MBAbstractWebViewController.sharedWebsiteDataStore fetchDataRecordsOfTypes:WKWebsiteDataStore.allWebsiteDataTypes
completionHandler:^(NSArray<WKWebsiteDataRecord *> *records) {
NSLog(@"%@", records);
}];
webViewConfiguration.processPool = MBAbstractWebViewController.sharedProcessPool;
_webView = [[WKWebView alloc] initWithFrame:CGRectZero
configuration:webViewConfiguration];
}
Любая помощь приветствуется!