Файлы cookie, добавленные в менеджер файлов cookie, не всегда доступны для просмотра в Интернете. - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть класс, который наблюдает за учетной записью пользователя.Это начинает наблюдать это, когда приложение запускается.Когда учетная запись изменяется, она устанавливает файл 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, он все равно не работает.Но после перезапуска приложения все работает.

Почти как-то в начале приложения не позволяет приложению устанавливать куки.Это работает, когда я делаю это очень рано в жизненном цикле приложения, но не позже.

Есть идеи, в чем может быть проблема?

...