首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin iOS从WKWebView清除缓存

Xamarin iOS从WKWebView清除缓存
EN

Stack Overflow用户
提问于 2016-05-02 19:05:24
回答 1查看 4.1K关注 0票数 2

我正在执行以下操作,以便从WkWebView中清除缓存。我想知道如何确认缓存是否已被清除。

代码语言:javascript
复制
 var request = new NSUrlRequest (webURL, NSUrlRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData, 0);

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

是否有方法在发出请求时打印缓存?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-02 20:38:53

从这个问题中,您可以为iOS 9执行此操作(c#版本),并且它将打印出哪些记录被删除:

代码语言:javascript
复制
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中检查库目录中的子目录Cookies、缓存、WebKit。

iOS 8 经过多次试验和错误之后,我得出了以下结论: 使用NSURLCache和NSHTTPCookie删除cookies和缓存,就像在UIWebView上一样。 如果使用WKProccessPool,请重新初始化它。 删除库目录中的Cookies、缓存、WebKit子目录。 删除所有WKWebViews

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36989788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档