2017-08-03 106 views
1

我需要在關閉WebView後清除緩存 我使用的代碼來自Xamarin iOS clear cache from WKWebView 但它沒有效果。已經瞭解records.Count equals 0清除WebView緩存xamarin IOS

如何糾正錯誤?

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}");}); 
    } 
}); 

回答

2

解決問題通過下面的代碼:

NSHttpCookieStorage CookieStorage = NSHttpCookieStorage.SharedStorage; 

     foreach (var cookie in CookieStorage.Cookies) 
      CookieStorage.DeleteCookie(cookie);