android - 如何清理在 WebView 中创建的 session ?

标签 android session webview android-cookiemanager

我有一个 WebView 实例,它允许用户进行身份验证并访问网络应用程序提供的部分功能。用户使用 WebView 完成工作后,出于安全目的,我们需要清理 session 。

奇怪的是,下次我使用 WebView 打开屏幕时, session 仍然存在,我可以从中断的地方继续,尽管我尝试清理 session 。

我尝试做的事情(我实际上运行了调试器以确保调用这些方法):

webView.clearCache(true)
webView.clearFormData()
webView.clearHistory()
webView.clearSslPreferences()
webView.clearMatches()

CookieManager.getInstance().removeAllCookies {
    CookieManager.getInstance().flush()
}

我在 removeAllCookies() 的回调中调用 flush() 的原因是 removeAllCookies() 方法是异步的,所以我在想,将内存中 cookie 存储的状态与持久存储同步可能需要一些时间,但这没有帮助。

我没有对 CookieManager 做任何花哨的事情,它是操作系统(Pixel 2 XL 上安装的 Android 9.0)提供的默认设置。有什么我想念的吗?

最佳答案

好的,事实证明 session 存储在本地存储中,所以您需要做的就是:

WebStorage.getInstance().deleteAllData()

关于android - 如何清理在 WebView 中创建的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57256383/

相关文章:

java - android 动态生成资源

Android通知,振动但没有声音

php - 在线用户、CodeIgniter 和 session

macos - Mac 上 WebView 中的 Flash 插件与 Safari 中的 Flash 插件不同吗?它有定期的 Flash 垃圾收集吗?

javascript - 如何在 Facebook 应用内浏览器中接收邮件?

android - 如何转到 fragment 中 Webview 中的上一页?

java - Android 在社交网络中共享 google play 安装 referrer url?

android - Volley 上下文中的 Kotlin 'it' 语法

drupal - 我可以在Drupal中截断 session 和看门狗表吗?

node.js - req.session 没有方法 'touch' ?