2016-05-02 57 views
1

我正在做以下清除從WkWebView緩存。我想知道我怎麼確認緩存清除Xamarin從WKWebView的iOS清除緩存

var request = new NSUrlRequest (webURL, NSUrlRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData, 0); 

NSUrlCache.SharedCache.RemoveAllCachedResponses(); 
NSUrlCache.SharedCache.MemoryCapacity = 0; 
NSUrlCache.SharedCache.DiskCapacity = 0; 

有沒有辦法提出請求

回答

2

從這個question時打印緩存看起來像你這樣做(C#版本) iOS版9,它會打印出記錄被刪除:

var websiteDataTypes = new NSSet<NSString>(new [] 
{ 
    //Choose which ones you want to remove 
    WKWebsiteDataType.Cookies, 
    WKWebsiteDataType.DiskCache, 
    WKWebsiteDataType.IndexedDBDatabases, 
    WKWebsiteDataType.LocalStorage, 
    WKWebsiteDataType.MemoryCache, 
    WKWebsiteDataType.OfflineWebApplicationCache, 
    WKWebsiteDataType.SessionStorage, 
    WKWebsiteDataType.WebSQLDatabases 
}); 

WKWebsiteDataStore.DefaultDataStore.FetchDataRecordsOfTypes (websiteDataTypes, (NSArray records) => 
{ 
    for (nuint i = 0; i < records.Count; i++) { 
     var record = records.GetItem<WKWebsiteDataRecord> (i); 

     WKWebsiteDataStore.DefaultDataStore.RemoveDataOfTypes (record.DataTypes, 
      new[] {record},() => {Console.Write($"deleted: {record.DisplayName}");}); 
    } 
}); 

或者爲iOS 8,從ShingoFukuyama/WKWebViewTips你可以檢查子目錄餅乾,緩存,WebKit的在圖書館目錄中被刪除。

的iOS 8

大量的試驗和錯誤之後,我得出了以下結論:

使用NSURLCache和NSHTTPCookie刪除Cookie和緩存以同樣的方式,你用來做在UIWebView上。

如果您使用WKProccessPool,請重新初始化它。

刪除庫目錄中的Cookies,Caches,WebKit子目錄。

刪除所有WKWebViews

+0

不過,問題是如何以驗證清除緩存 – User382

+0

更新我的答案我有錯誤,而建設websiteDataTypes –

+0

。它說「類型Foundation.NSSet 不包含定義的添加和沒有擴展方法添加的類型Foundation.NSSet 可以被發現 – User382