首页 > 解决方案 > 如何清理在 WebView 中创建的会话?

问题描述

我有一个WebView实例,它允许用户进行身份验证并访问 Web 应用程序提供的某些部分功能。一旦用户完成了他们的工作,WebView为了安全起见,我们需要清理会话。

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

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

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

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

flush()removeAllCookies()'s 回调中调用的原因是该removeAllCookies()方法是异步的,所以我在想可能需要一些时间才能将内存中 cookie 存储的状态与持久存储同步,但这无济于事。

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

标签: androidsessionwebviewandroid-cookiemanager

解决方案


好的,原来会话存储在本地存储中,所以您需要做的就是:

WebStorage.getInstance().deleteAllData()

推荐阅读