Двусторонняя синхронизация файлов cookie между HttpURLConnection (java.net.CookieManager) и WebView (android.webkit.CookieManager)

К сожалению, существует множество менеджеров файлов cookie для Android. Печенье дляHttpURLConnection поддерживаютсяjava.net.CookieManager и печенье дляWebView поддерживаютсяandroid.webkit.CookieManager, Эти хранилища cookie являются отдельными и требуют ручной синхронизации.

Мое приложение использует обаHttpURLConnections и показываетWebViews (это гибрид нативного HTML). Естественно, я хочу, чтобы оба разделяли все файлы cookie, поэтому у меня будет прозрачный сеанс.

Более конкретно:

Когда cookie устанавливается / изменяется в HttpURLConnection, я хочу, чтобы WebView также видел это изменение.Когда cookie устанавливается / изменяется в WebView, я хочу, чтобы следующие HttpURLConnections также увидели это изменение.

Проще говоря - я ищу двустороннюю синхронизацию. Или даже лучше, чтобы они оба использовали один и тот же репозиторий cookie. Можно предположить, что оба активны одновременно (как на разных вкладках).

Вопросов:

Есть ли способ заставить оба использовать один и тот же репозиторий cookie?

Если нет, то какую практику рекомендуется выполнять ручную синхронизацию? Когда именно я должен синхронизироваться и как?

Связанный вопрос: Этотвопрос решает аналогичную проблему, но реализует только одностороннюю синхронизацию (HttpURLConnection -> WebView).

Моя лучшая идея на данный момент: Я действительно хочу избежать ручной синхронизации, поэтому я попытался подумать, как заставить оба использовать один и тот же репозиторий. Может быть, я могу создать свой собственный обработчик ядра, который расширяетjava.net.CookieManager, Я установлю его как основной обработчик файлов cookie, используяjava.net.CookieHandler.setDefault(), Его реализация будет прокси дляandroid.webkit.CookieManager экземпляр обработчика (для каждой функции я просто получу доступ к менеджеру webkit).

Ответы на вопрос(1)

Ваш ответ на вопрос