android - 如何清理在 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 上)。有什么我想念的吗?
解决方案
好的,原来会话存储在本地存储中,所以您需要做的就是:
WebStorage.getInstance().deleteAllData()