`

iOS 怎么给WKWebView清除缓存

 
阅读更多

很多时候,我们在更改了h5的数据源之后,再次进入h5页面的时候,WKWebView里的的数据没有实时的刷新,这个时候我们会很纳闷,第一时间会想到是缓存在捣鬼,想到要清除缓存,怎么清除缓存,见如下代码:

#pragma mark  -- WKWebView清除缓存 --
-(void)dealloc {
    [self clearCacheAndCookie];
}

- (void)clearCacheAndCookie {
    //清除cookies
    NSHTTPCookie *cookie;
    NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    for (cookie in [storage cookies]) {
        [storage deleteCookie:cookie];
    }
    
    [[NSURLCache sharedURLCache] removeAllCachedResponses];
    NSURLCache * cache = [NSURLCache sharedURLCache];
    [cache removeAllCachedResponses];
    [cache setDiskCapacity:0];
    [cache setMemoryCapacity:0];
    
    WKWebsiteDataStore *dataStore = [WKWebsiteDataStore defaultDataStore];
    [dataStore fetchDataRecordsOfTypes:[WKWebsiteDataStore allWebsiteDataTypes] completionHandler:^(NSArray<WKWebsiteDataRecord *> * _Nonnull records) {
        for (WKWebsiteDataRecord *record in records) {
            [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:record.dataTypes forDataRecords:@[record] completionHandler:^{
                NSLog(@"WKWebView清除缓存 ========= Cookies for %@ deleted successfully",record.displayName);
            }];
        }
    }];
}

 

分享到:
评论

相关推荐

    ios WebView 页面缓存

    iOS中的WebView主要由UIWebView(在iOS 8后被WKWebView取代)负责加载和渲染网页。当用户访问一个网页时,系统会自动管理HTTP请求和响应,包括缓存机制。缓存分为两种主要类型:内存缓存和磁盘缓存。 1. 内存缓存:...

    iOSUIWebView 优化 内存大大降低

    可以尝试关闭自动缓存,通过`setCachePolicy:`方法设置为`NSURLCacheStoragePolicy.NoCache`,并清除缓存`[[NSURLCache sharedURLCache] removeAllCachedResponses];`。 2. **避免不必要的JavaScript执行**:...

    清除WKWebView cookies的方法

    WKWebView清除cookies的方法(iOS9以上) WKWebsiteDataStore *dateStore = [WKWebsiteDataStore defaultDataStore]; [dateStore fetchDataRecordsOfTypes:[WKWebsiteDataStore allWebsiteDataTypes] ...

    iOS 缓存机制

    内存缓存如NSCache,主要用于存储少量、频繁访问的数据,当系统内存紧张时,这些数据会被自动清除。磁盘缓存如SQLite、CoreData或文件系统,用于存储大量数据,即使应用关闭,数据也能被持久化。 iOS提供了多种缓存...

    详解iOS webview加载时序和缓存问题总结

    在WKWebView中,可以使用`WKWebsiteDataStore`来设置缓存策略和清除缓存数据。通过`WKWebsiteDataStore.nonPersistentDataStore`可以创建不持久化的数据存储,只在内存中缓存数据;而`WKWebsiteDataStore....

    完美解决客户端webview持有的页面缓存,不会立即释放的问题

    在客户端应用开发,尤其是涉及到Android和iOS平台时,Web视图组件(如Android的`WebView`和iOS的`WKWebView`)的使用是常见的做法,它们允许开发者在原生应用中嵌入网页内容。然而,当用户离开或销毁包含`WebView`的...

    OC-WKWebView基础

    同时,可调用`WKWebsiteDataStore`清除缓存: ```objc WKWebsiteDataStore *dataStore = webView.configuration.websiteDataStore; [dataStore.removeDataOfTypes:WKWebsiteDataTypeDiskCache completionHandler:^{...

    Swift使用WKWebView在iOS应用中调用Web的方法详解

    - 使用`WKWebView`的缓存机制,可以通过`WKWebViewConfiguration`的`cacheModel`属性来调整。 - 对于大量图片或资源的页面,可以考虑异步加载,减轻启动时的性能压力。 总之,Swift中的WKWebView是现代iOS应用中...

    ionic3 打包真机启动白屏问题修复方法

    1. 清除缓存:删除应用数据并重新安装,以确保没有遗留的旧资源导致问题。 2. 检查报错日志:查看设备或模拟器的日志输出,查找可能的错误信息,有助于定位问题所在。 3. 使用远程调试:对于Android,可以通过Chrome...

    webview展示

    4. **JavaScript接口**:为了增强功能,开发者可以使用`addJavascriptInterface()`(Android)或`WKUserContentController`(iOS)暴露Java或Swift对象给JavaScript代码调用。这种方式叫做JavaScript Bridge,它允许...

    webView的简单讲解

    - `clearCache()`: 清除WebView的缓存。 - `clearHistory()`: 清除浏览历史。 #### iOS中的WKWebView设置 - `WKWebViewConfiguration`: 创建配置对象,可以设置是否启用JavaScript、Cookies等。 - `...

    iphonebrowser开源代码

    5. 隐私保护:考虑到用户隐私,iPhoneBrowser可能实现了清除浏览数据的功能,包括cookies、缓存和历史记录。 6. 夜间模式:为了适应不同场景的使用,夜间模式是一个受欢迎的特性,它通过改变界面颜色来降低对用户...

    flutter_inappwebview-master_flutter_WebView_源码.zip

    - **缓存管理:**支持配置WebView的缓存策略,以及读取和清除缓存。 - **手势操作:**允许自定义滑动手势,例如左右滑动切换页面。 - **安全配置:**支持HTTPS证书校验、SSL Pinning等功能,保障数据传输的安全性...

    tabelView and webViewq嵌套

    当单元格离开屏幕并被复用时,要记得清理 `UIWebView`,如停止加载、清除缓存,避免内存泄漏。同时,确保在单元格的 `prepareForReuse` 方法中重置 `UIWebView` 的状态。 6. **交互处理** 为了处理 `UIWebView` ...

    自己做得微博小程序

    在iOS应用中,我们需要引导用户通过SFSafariViewController或WKWebView打开微博登录页面,用户同意授权后,微博会回调我们的应用,并携带授权码。这个过程需要正确配置URL Scheme,以便微博能正确返回到我们的应用。...

Global site tag (gtag.js) - Google Analytics