Как сохранить Cookies в WebView?
Нужно, чтобы логин и пароль сохранялись при выходе из приложения, как это реализовать?
Ответы (1 шт):
Для работы с 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()