WebView и domStorageEnabled: сохраняются куки с задержкой
Подскажите, по какой причине cookies сохраняются не сразу же? Прохожу авторизацию на сайте, и закрываю приложение, перезайдя в него, авторизация слетает, но если сделать пару переходов по сайту, и только после этого закрыть приложение, то такого не происходит.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webViewSetup()
}
@SuppressLint("SetJavaScriptEnabled")
private fun webViewSetup() {
wb_WebView.webViewClient = WebViewClient()
wb_WebView.apply {
loadUrl("https://test.ru")
settings.javaScriptEnabled = true
settings.domStorageEnabled = true
}
}
override fun onBackPressed() {
if (wb_WebView.canGoBack()) wb_WebView.goBack() else super.onBackPressed()
}
}
Ответы (1 шт):
Автор решения: ЮрийСПб
→ Ссылка
Куки сначала сохраняются в оперативную память а потом, с некоторой задержкой - в постоянную. Это поведение можно изменить, вручную инициирую сохранение кук в постоянную память.
Попробуйте вручную инициировать сохранение кук на диск так:
CookieSyncManager.createInstance(context);
CookieSyncManager.getInstance().sync();
В комментах по ссылке сказано, что код выше - устарел и надо использовать его замену - синхронную запись на диск кук, находящихся в оперативке:
CookieManager.getInstance().flush()