wkwebview删除cookes和缓存

来源:互联网 发布:cnc五轴编程招聘 编辑:程序博客网 时间:2024/05/02 14:20

    试了很多方法没用,最后找到这个


{    NSSet *websiteDataTypes = [NSSet setWithArray:@[                                                    WKWebsiteDataTypeDiskCache,                                                    WKWebsiteDataTypeOfflineWebApplicationCache,                                                    WKWebsiteDataTypeMemoryCache,                                                    WKWebsiteDataTypeLocalStorage,                                                    WKWebsiteDataTypeCookies,                                                    WKWebsiteDataTypeSessionStorage,                                                    WKWebsiteDataTypeIndexedDBDatabases,                                                    WKWebsiteDataTypeWebSQLDatabases                                                    ]];    //你可以选择性的删除一些你需要删除的文件 or 也可以直接全部删除所有缓存的type    //NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];    NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];    [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes                                               modifiedSince:dateFrom completionHandler:^{                                                   // code                                               }];    //    但开发app必须要兼容所有iOS版本,可是iOS8,iOS7没有这种直接的方法,那该怎么办呢?//    (iOS7.0只有UIWebView, 而iOS8.0是有WKWebView, 但8.0的WKWebView没有删除缓存方法。)//    针对与iOS7.0、iOS8.0、iOS9.0 WebView的缓存,我们找到了一个通吃的办法:        NSString *libraryDir = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0];    NSString *bundleId  =  [[[NSBundle mainBundle] infoDictionary]                            objectForKey:@"CFBundleIdentifier"];    NSString *webkitFolderInLib = [NSString stringWithFormat:@"%@/WebKit",libraryDir];    NSString *webKitFolderInCaches = [NSString                                      stringWithFormat:@"%@/Caches/%@/WebKit",libraryDir,bundleId];    NSString *webKitFolderInCachesfs = [NSString                                           stringWithFormat:@"%@/Caches/%@/fsCachedData",libraryDir,bundleId];        NSError *error;    /* iOS8.0 WebView Cache的存放路径 */    [[NSFileManager defaultManager] removeItemAtPath:webKitFolderInCaches error:&error];    [[NSFileManager defaultManager] removeItemAtPath:webkitFolderInLib error:nil];        /* iOS7.0 WebView Cache的存放路径 */    [[NSFileManager defaultManager] removeItemAtPath:webKitFolderInCachesfs error:&error];}


0 0
原创粉丝点击