Dwukierunkowa synchronizacja plików cookie między HttpURLConnection (java.net.CookieManager) a WebView (android.webkit.CookieManager)

Niestety, istnieje wiele menedżerów plików cookie dla Androida. Pliki cookie dlaHttpURLConnection są utrzymywane przezjava.net.CookieManager i pliki cookie dlaWebView są utrzymywane przezandroid.webkit.CookieManager. Te repozytoria plików cookie są oddzielne i wymagają ręcznej synchronizacji.

Moja aplikacja korzysta z obuHttpURLConnections i pokazujeWebViews (to hybryda natywnego HTML). Oczywiście chcę, aby oba pliki udostępniały wszystkie pliki cookie - więc będę miał przejrzystą sesję w całej sieci.

Dokładniej:

Gdy plik cookie jest ustawiany / zmieniany w HttpURLConnection, chcę, aby WebView zobaczył również tę zmianę.Gdy plik cookie jest ustawiany / zmieniany w WebView, chcę, aby następne HttpURLConnections również zobaczyły tę zmianę.

Po prostu - szukam synchronizacji dwukierunkowej. Lub nawet lepiej, aby oba używały tego samego repozytorium plików cookie. Możesz założyć, że oba są aktywne w tym samym czasie (jak na różnych kartach).

Pytania:

Czy istnieje sposób na wykorzystanie obu repozytoriów plików cookie?

Jeśli nie, jaka jest zalecana praktyka, aby wykonać synchronizację ręczną? Kiedy dokładnie mam synchronizować i jak?

Podobne pytanie: Topytanie rozwiązuje podobny problem, ale implementuje tylko jednokierunkową synchronizację (HttpURLConnection -> WebView).

My Best Idea Dotychczas: Naprawdę chcę uniknąć ręcznej synchronizacji, więc spróbowałem zastanowić się, jak sprawić, by oba używały tego samego repozytorium. Może uda mi się stworzyć własny podstawowy program obsługi, który się rozszerzajava.net.CookieManager. Ustawię go jako podstawowy program obsługi plików cookiejava.net.CookieHandler.setDefault(). Jego implementacja będzie proxy dlaandroid.webkit.CookieManager instancja obsługi (dla każdej funkcji po prostu uzyskuję dostęp do menedżera webkit).

questionAnswers(1)

yourAnswerToTheQuestion