如何在iOS swift WKWebview中清除特定缓存

wwtsj6pe  于 2023-06-21  发布在  Swift
关注(0)|答案(1)|浏览(288)

我有一个WKWebView应用程序,我想清除特定的缓存时,图像上传。
当我上传一个图像时,名称保持不变,但旧图像将被新图像覆盖,如旧图像是logo.png,新图像也将被重命名为logo.png。但是由于缓存的存在,用户仍然会看到旧的图像。
我有下面的代码行,以清除缓存一旦图像已上传,它的工作正常,但我现在唯一的问题是,所有缓存的数据也被清除。
有没有什么方法可以清除缓存的图像上传,也许通过传递图像名称?
或者只是清除图像的缓存?

static func clearCache(){
        let cacheURL =  FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first!
        let fileManager = FileManager.default
        do {
            // Get the directory contents urls (including subfolders urls)
            let directoryContents = try FileManager.default.contentsOfDirectory( at: cacheURL, includingPropertiesForKeys: nil, options: [])
            for file in directoryContents {
                print("CACHE = ", file)
                do {
                    try fileManager.removeItem(at: file)
                }
                catch let error as NSError {
                    debugPrint("Ooops! Something went wrong: \(error)")
                }

            }
        } catch let error as NSError {
            print(error.localizedDescription)
        }
    }

从循环中我得到了这个
CACHE =文件:///private/var/mobile/Containers/Data/Application/BFEB788B-9EA4 - 4921-A902 - 230869CAC814/Library/Caches/com. myapp ios。sellers/CACHE = file:///private/var/mobile/Containers/Data/Application/BFEB788B-9EA4 - 4921-A902 - 230869CAC814/Library/Caches/google-sdks-events/CACHE = file:///private/var/mobile/Containers/Data/Application/BFEB788B-9EA4 - 4921-A902 - 230869CAC814/Library/Caches/com.苹果。WebKit。WebContent/CACHE =文件:///private/var/mobile/Containers/Data/Application/BFEB788B-9EA4 - 4921-A902 - 230869CAC814/Library/Caches/WebKit/

qpgpyjmq

qpgpyjmq1#

在for循环中查找文件时,似乎需要找到要删除的文件。当for循环命中时删除该特定图像。现在for循环删除了directoryContents中的所有缓存。

相关问题