Как сохранить Cookies в WebView?
Нужно, чтобы логин и пароль сохранялись при выходе из приложения, как это реализовать?
Источник: Stack Overflow на русском
Нужно, чтобы логин и пароль сохранялись при выходе из приложения, как это реализовать?
Для работы с cookies в Android есть класс CookieManager
.
Чтобы принимать cookies от сайтов, есть переключатель (по-умолчанию он уже включен):
CookieManager.getInstance().setAcceptCookie(true)
Если вам нужно включить third-party cookies, то есть следующий метод:
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true)
В случае принудительной остановки приложения может возникнуть ситуация, что cookies не успели синхронизироваться на диск из оперативной памяти.
Поэтому, чтобы гарантированно сохранить cookies на диск, используйте метод flush()
:
CookieManager.getInstance().flush()
Выполнение метода flush()
можно добавить в ваш WebViewClient
, чтобы сохранение cookies происходило после каждой загрузки страницы:
class MyWebViewClient : WebViewClient() {
override fun onPageFinished(view: WebView, url: String) {
CookieManager.getInstance().flush()
}
}
Не забудьте подключить ваш WebViewClient
к WebView
:
val webView = WebView(context)
webView.webViewClient = MyWebViewClient()