2013-02-01 147 views
0

我試圖在用戶註銷時清除我的應用程序中webview使用的localstorage。我正在手動刪除保存localstorage的文件夾,並且能夠驗證用戶註銷時它將被刪除。但是,當他們重新登錄時,即使沒有本地存儲文件,本地存儲仍然可以被webview訪問。如果我在註銷後手動終止進程,它將按預期工作,但我需要這種行爲而不會中止應用程序。正在刪除本地存儲但仍然存在

是否有可能清除應用程序使用的RAM,這是一個已知的與vebview的錯誤,還是有一些其他方式,我可以解決這個問題?

我已嘗試刪除webview和webviewCache數據庫,刪除所有緩存文件夾,刪除應用程序使用的文件,但本地存儲仍然存在,因爲應用程序在註銷時未被重置。

回答

6

我終於知道了我在找什麼!

由於我們在應用程序中有一種內置瀏覽器,因此可以加載許多網頁並將其保存到localStorage。調用localStorage.clear()loadUrl("javascript:localStorage.clear()")並未正確清除所有網頁的所有緩存等。

最終工作的行爲是使用下面鏈接的WebStorage.deleteAllData()。我也刪除文件(因爲奇巧它app_webview默認保存,在此之前,您提供的路徑)

http://developer.android.com/reference/android/webkit/WebStorage.html#deleteAllData()

+1

一直在尋找小時,沒有任何工作,直到我看到你的回答使用WebStorage.deleteAllData() 謝謝:) – OmarBizreh

1

嘗試在JavaScript中調用localStorage.clear()來清除localStorage,而不是通過刪除WebView來刪除它管理的文件。

+0

我不會有過的JavaScript文件控制,因爲它們會被其他開發商和剛剛被寫入托管在我的應用程序的瀏覽器中 – Mike

+0

@Mike:您不應該需要「控制JavaScript文件」。在你的'WebView'上調用'loadUrl(「javascript:localStorage.clear()」)''。 – CommonsWare

+0

如果我需要從我的應用程序庫中執行該操作,但沒有對webView的引用,該怎麼辦? – Mike

相關問題