Я использую 2 ViewController с 2 WKWebViews.
Веб-представления используют общую конфигурацию WKWebViewConfiguration.
расширение WKWebViewConfiguration {
static var Shared : WKWebViewConfiguration{
if sharedConfiguration == nil{
sharedConfiguration = WKWebViewConfiguration()
sharedConfiguration.websiteDataStore = WKWebsiteDataStore.default()
sharedConfiguration.processPool = WKProcessPool()
}
return sharedConfiguration
}
private static var sharedConfiguration : WKWebViewConfiguration!
}
Я передаю это каждому веб-представлению, и из того, что я прочитал, должно быть решение для общих файлов cookie.
Но поскольку я выполняю вход через веб-контент, я хочу иметь веб-представления SYNCHED , если пользователь вошел в систему или нет.
Проблема возникает, когда пользователь входит в систему . Следующие шаги:
1) Я идентифицирую хост и путь и проверяю navigationAction.request.url.host
и navigationAction.request.url.path
когда пользователь делает запрос, и запрос происходит ТОЛЬКО , если учетные данные верны (поэтому я знаю правильный хост и путь), я создаю bool var, который указывает, что пользователи вошли в систему
2) После того, как WebView didFinish: FINISH, я вызываю функцию, которая перезагружает веб-представления, которые должны получить обновленные , но веб-представления не работают так, как будто у них есть файлы cookie.
3) через несколько секунд (каждый раз по-разному), добавляя вручную код .reload (), веб-просмотры в каждом предварительном просмотре веб-просмотры синхронизируются.
Я работаю на iOS 9, так как это требования.
Похоже, что файлы cookie являются асинхронными, и, в конце концов, они приходят в общий processPool или websiteDataStore из моего понимания.
У кого-нибудь есть твердый раствор?