У меня есть класс, который наблюдает за учетной записью пользователя.Это начинает наблюдать это, когда приложение запускается.Когда учетная запись изменяется, она устанавливает файл cookie в диспетчере файлов cookie с помощью setCookie
.
. Когда я запускаю приложение, и учетная запись уже существует, оно правильно внедряет файл cookie - когда я открываю веб-представление, я вижуэто там.
Когда я запускаю приложение, а учетной записи нет, ничего не происходит (это ожидается), затем я вхожу в систему (это создает учетную запись), и вызывается код для добавления файлов cookie (обратный вызов setCookie
говорит, что печенье было правильно введено).Но когда я открываю веб-представление, я не вижу там файл cookie.Если я перезапускаю приложение, все снова работает.
Я пробовал много разных конфигураций веб-представлений и менеджера файлов cookie.Я пытался позвонить flush
в диспетчере файлов cookie.Я попытался установить acceptCookies
, acceptThirdPartyCookies
.В моем веб-представлении мне нужно включить Javascript и хранилище DOM.
Вот как я устанавливаю куки:
fun injectCookie(account: Account) {
val email = account.accountEmail ?: return
val accessCode = account.accessCode ?: return
val cookie = buildCookie(email, accessCode, DOMAIN)
val manager = CookieManager.getInstance()
// manager.setAcceptCookie(true)
manager.setCookie(DOMAIN, cookie) { Log.d("COOKIE - auth", it.toString()) } // this prints true!
// manager.flush() // I tried with and without flushing. I expect it to work without flush.
}
Я ожидал, что мои куки будут видны в веб-просмотрах сразу послеsetCookie
печатает true
, но этого не происходит в тех случаях, когда пользователь открывает приложение, а учетной записи там нет.Когда пользователь входит в систему и вызывается код setCookie
, он все равно не работает.Но после перезапуска приложения все работает.
Почти как-то в начале приложения не позволяет приложению устанавливать куки.Это работает, когда я делаю это очень рано в жизненном цикле приложения, но не позже.
Есть идеи, в чем может быть проблема?