并非总是可以通过Web视图访问注入到cookie管理器中的cookie

时间:2019-04-07 01:38:21

标签: android session-cookies android-cookiemanager

我有一个观察用户帐户的类。当应用启动时,它开始观察它。帐户更改后,它将使用setCookie在cookie管理器中设置cookie。

当我启动该应用程序并且该帐户已经存在时,它会正确注入cookie-打开Web视图时,我会在其中看到它。

当我启动该应用程序并且该帐户不存在时,什么也没发生(这是预期的),然后我登录(这将创建该帐户),并调用了注入cookie的代码({{1的回调)表示已正确注入Cookie)。但是,当我打开Web视图时,我在那里看到cookie。如果我重新启动应用程序,一切将再次正常运行。

我尝试了许多不同的Web视图和cookie管理器配置。我尝试在Cookie管理器上调用setCookie。我尝试设置flushacceptCookies。在我的网络视图上,我需要启用javascript和dom存储。

这是我设置Cookie的方式:

acceptThirdPartyCookies

我希望在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之后立即在网络视图中看到我的cookie,但是在用户打开应用程序且该帐户不存在的情况下不会发生这种情况。用户登录并调用true代码后,它仍然不起作用。但重新启动应用程序后,一切正常。

几乎像应用程序开头的内容会阻止应用程序设置Cookie。当我在应用程序生命周期的早期(而不是稍后)执行此操作时,它将起作用。

任何想法可能是什么问题?

0 个答案:

没有答案