feat: 添加清除 WebView 持久存储目录的功能
This commit is contained in:
@@ -178,6 +178,39 @@ class MainActivity : FlutterActivity() {
|
|||||||
} finally {
|
} finally {
|
||||||
webView.destroy()
|
webView.destroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clearWebViewPersistentStorageDirectories()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun clearWebViewPersistentStorageDirectories() {
|
||||||
|
val webViewDataDir = File(applicationInfo.dataDir, "app_webview")
|
||||||
|
val relativePaths = listOf(
|
||||||
|
"Default/IndexedDB",
|
||||||
|
"Default/Local Storage",
|
||||||
|
"Default/Session Storage",
|
||||||
|
"Default/Service Worker",
|
||||||
|
"Default/Cache",
|
||||||
|
"Default/Code Cache",
|
||||||
|
"Default/blob_storage",
|
||||||
|
"IndexedDB",
|
||||||
|
"Local Storage",
|
||||||
|
"Session Storage",
|
||||||
|
"Service Worker",
|
||||||
|
"databases",
|
||||||
|
)
|
||||||
|
|
||||||
|
relativePaths.forEach { relativePath ->
|
||||||
|
deleteRecursivelyIfExists(File(webViewDataDir, relativePath))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun deleteRecursivelyIfExists(file: File) {
|
||||||
|
if (!file.exists()) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!file.deleteRecursively()) {
|
||||||
|
Log.w(TAG, "Failed to delete WebView data path: ${file.absolutePath}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||||
|
|||||||
Reference in New Issue
Block a user