ios 中清除webView的緩存


在UIWebView下,可以使用

 
  1. [[NSURLCache sharedURLCache] removeAllCachedResponses];//清除緩存  


來實現清除緩存,但當替換使用WKWebView后,這個方法並不生效了(據說WKWebView不支持,我沒找到官方說法~)

 

不過尋找了一下解決方法,分享一下

--------------IOS9以上----------------

WKWebsiteDataStore *dateStore = [WKWebsiteDataStore defaultDataStore];

    [dateStore fetchDataRecordsOfTypes:[WKWebsiteDataStore allWebsiteDataTypes]

                     completionHandler:^(NSArray<WKWebsiteDataRecord *> * __nonnull records) {

                         for (WKWebsiteDataRecord *record  in records)

                         {

                             //                             if ( [record.displayName containsString:@"baidu"]) //取消備注,可以針對某域名清除,否則是全清

                             //                             {

                             [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:record.dataTypes

                                                                       forDataRecords:@[record]

                                                                    completionHandler:^{

                                                                        NSLog(@"Cookies for %@ deleted successfully",record.displayName);

                                                                    }];

                             //                             }

                         }  

                     }];


但顯然大多小伙伴們都需要支持IOS8的,所以尷尬的是上面的方法暫時用不到,所以還是老老實實的這么干XD

 

--------------IOS8以上---------------

  NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];

    NSString *cookiesFolderPath = [libraryPath stringByAppendingString:@"/Cookies"];

    NSError *errors;

    [[NSFileManager defaultManager] removeItemAtPath:cookiesFolderPath error:&errors];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM