Несколько - изолированные - WkWebViews в одном приложении - macOS - PullRequest
0 голосов
/ 07 июня 2019

Допустим, я хочу показать два WkWebView рядом, каждый вошел на один и тот же сайт, но с двумя разными учетными записями.Логины (и другие данные) должны сохраняться между запусками

Согласно этому докладу на wwdc 2017 года, это можно сделать.Это результат, который я получаю: они обмениваются данными.

enter image description here

И это то, что я хочу, не делясь данными.

enter image description here

По словам докладчика, это возможно.Он просто не говорит как.

Несколько подходов, которые я пробовал

Создание нового WkWebView.Это не имеет значения.Они все еще обмениваются данными.Я попытался создать экземпляр как из раскадровки, так и из кода.

Изменение идентификатора моего пакета .Не жизнеспособное решение, так как я хочу, чтобы два хранилища данных работали бок о бок.Но это работает, и, похоже, данные (без файлов cookie) хранятся в /Users/username/Library/WebKit/(bundle-identifier)

Создание нового WKProcessPool с webView.configuration.processPool = WKProcessPool().Без разницы.

Обращаюсь с печеньем сам .Это было бы моим последним средством.Я бы установил WKWebsiteDataStore на .nonPersistent() и сохранял и удалял куки в моем собственном магазине при открытии и закрытии (наблюдатель куки не срабатывает в nonPersistent).Плохо тремя способами: 1. Мне нужно безопасное место для их хранения - (брелок)?2. Это не будет сохраняться независимо от того, какие сайты могут быть в Local Storage, 3: добавлена ​​работа и сложность

...