如何清理WebView中创建的会话?

aga*_*aga 2 session android webview android-cookiemanager

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

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

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

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

CookieManager.getInstance().removeAllCookies {
    CookieManager.getInstance().flush()
}
Run Code Online (Sandbox Code Playgroud)

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

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

aga*_*aga 7

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

WebStorage.getInstance().deleteAllData()
Run Code Online (Sandbox Code Playgroud)