我试图在用户注销时清除我的应用程序中webview使用的本地存储。我手动删除保存localstorage的文件夹,并能够验证用户注销时是否删除了该文件夹。但是,当他们重新登录时,即使没有localstorage文件,webview仍然可以访问localstorage。如果我在注销后手动终止进程,它按预期工作,但我需要这种行为而不会终止应用程序。
是否可以清除应用程序使用的RAM,这是vebview的已知错误,还是有其他方法可以解决此问题?
我尝试删除webview和webviewCache数据库,删除所有缓存文件夹,删除应用程序使用的文件但localstorage仍然存在,因为注销时应用程序未重置。
答案 0 :(得分:11)
我终于找到了我要找的东西!
由于我们在应用程序中有一种内置浏览器,因此可以加载许多网页并将其保存到localStorage。调用localStorage.clear()
或loadUrl("javascript:localStorage.clear()")
未正确清除所有网页的所有缓存等。
最终有效的行为是使用下面链接的WebStorage.deleteAllData()
。我也在删除这些文件(因为默认情况下它会在app_webview中保存,因为在你提供路径之前)
http://developer.android.com/reference/android/webkit/WebStorage.html#deleteAllData()
答案 1 :(得分:1)
尝试在JavaScript中调用localStorage.clear()
来清除localStorage,而不是通过删除它管理的文件来催促WebView
。