也可以直接删除document 下的cache 文件夹
http://mft.iteye.com/admin/blogs/2394856
import Foundation import WebKit func removeWebData() { if #available(iOS 9.0, *) { let websiteDataTypes = WKWebsiteDataStore.allWebsiteDataTypes() let date = NSDate(timeIntervalSince1970: 0) WKWebsiteDataStore.default().removeData(ofTypes: websiteDataTypes, modifiedSince: date as Date, completionHandler: { #if DEBUG print("remove all data in iOS9 later") #endif }) }else { // Remove the basic cache. URLCache.shared.removeAllCachedResponses() // Delete system cookie store in the app let storage = HTTPCookieStorage.shared if let cookies = storage.cookies { for cookie in cookies { storage.deleteCookie(cookie) } } do { // folder 를 삭제하는 대신 contents 를 삭제하는 이유? // MainVC 가 호출되면 cache, cookie가 발생하므로 로딩시 확인된 cache, cookie 폴더의 // contents 에 대해서만 삭제 진행. // Clear web cache try deleteLibraryFolderContents(folder: "Caches") // Remove all cookies stored by the site. This includes localStorage, sessionStorage, and WebSQL/IndexedDB. try deleteLibraryFolderContents(folder: "Cookies") // Removes all app cache storage. try deleteLibraryFolder(folder: "WebKit") } catch { #if DEBUG print("Delete library folders error in iOS9 below") #endif } } } /** Delete folder in library - parameter folder: a folder you want to delete - throws: throws an error */ func deleteLibraryFolder(folder: String) throws { let manager = FileManager.default let library = manager.urls(for: .libraryDirectory, in: .userDomainMask).first! let dir = library.appendingPathComponent(folder) try manager.removeItem(at: dir) } /** Delete contents in library folder - parameter folder: target folder - throws: throws an error */ private func deleteLibraryFolderContents(folder: String) throws { let manager = FileManager.default let library = manager.urls(for: FileManager.SearchPathDirectory.libraryDirectory, in: .userDomainMask)[0] let dir = library.appendingPathComponent(folder) let contents = try manager.contentsOfDirectory(atPath: dir.path) for content in contents { do { try manager.removeItem(at: dir.appendingPathComponent(content)) } catch where ((error as NSError).userInfo[NSUnderlyingErrorKey] as? NSError)?.code == Int(EPERM) { // "EPERM: operation is not permitted". We ignore this. #if DEBUG print("Couldn't delete some library contents.") #endif } } }
相关推荐
在iOS应用开发中,有时我们需要在原生Swift代码和网页内容之间进行交互,这通常涉及到WebView的使用。Swift-iOS原生webView与JS交互工具,如`SFWebViewBridge`,就是为了实现这一目标而设计的。它允许开发者在Swift...
这个项目“swift-使用webview让用户授权登录微博然后自动获取用户信息”显然涉及到iOS和Android两个平台,分别通过`weibo`文件夹下的代码来实现。在iOS端,使用的是Swift编程语言,而在Android端则是用Java或Kotlin...
iOS中的WebView主要由UIWebView(在iOS 8后被WKWebView取代)负责加载和渲染网页。当用户访问一个网页时,系统会自动管理HTTP请求和响应,包括缓存机制。缓存分为两种主要类型:内存缓存和磁盘缓存。 1. 内存缓存:...
本项目“ios-WebView离线缓存.zip”主要探讨的是如何利用YYCache和系统提供的NSURLProtocol实现WebView的离线缓存功能,这对于在网络状况不佳或者无网络环境下的用户体验提升至关重要。 YYCache是由著名iOS开发者...
Android-X5WebView基本封装和使用 通过OkHttp拦截器、自定义CookieJar有效完成客户端与H5端的Cookie同步管理 监听WebView的加载进度 滚动条的设置(隐藏或者显示,内侧显示还是外侧显示) 优化X5WebView的预加载问题...
在iOS应用开发中,Swift语言为我们提供了丰富的工具和框架来构建功能丰富的用户界面。"swift-webView进度条显示Demo"是一个实例,展示了如何在使用WKWebView加载网页时,同步显示一个进度条,以提供更好的用户体验。...
在Swift编程中,创建一个类似微信的webView导航效果涉及到多个技术点,主要涵盖UIWebView或WKWebView的使用、自定义导航控制器以及手势识别。这里我们将深入探讨如何利用这些技术实现这个功能。 首先,我们需要理解...
1. **版本兼容性**:确保React Native WebView库的版本与React Native框架版本兼容,避免出现兼容性问题。 2. **性能优化**:合理使用`shouldOverrideUrlLoading`方法,避免不必要的页面重载。另外,可以考虑使用`...
下面将详细介绍`JHWebRequest`以及如何在Swift中利用它通过WebView发起请求。 首先,`JHWebRequest`是一个基于URLSession的网络请求框架,它封装了常见的网络操作,如GET、POST、PUT、DELETE等,并提供了异步回调...
4. **事件和方法的通信**: React Native的WebView组件支持通过`onMessage`监听JavaScript的事件,并通过`postMessage`方法向WebView中的JavaScript发送数据。在Swift端,你可以通过`RCTEventEmitter`类来响应这些...
Android8.0以下手机自带的android-system-webview版本过低使用
可以创建一个自定义的`WebView`组件,覆盖`onShouldStartLoadWithRequest`方法,以处理文件选择的结果: ```javascript import { WebView } from 'react-native-webview'; class CustomWebView extends React....
在iOS应用开发中,WebView是用于展示网页内容的重要组件,特别是在使用Swift编程语言时。"swift webView 侧滑返回"这个主题关注的是如何在使用WebView加载网页内容的同时,实现一个类似原生应用的侧滑返回功能,即...
在iOS应用开发中,UIWebView是苹果提供的一种用于在应用内加载网页内容的组件。有时候,我们希望用户在登录一次后,再次打开应用时能够自动登录,这时就需要利用cookie来保存用户状态。以下将详细解释如何使用Swift...
在Swift编程语言中,WebView是iOS应用开发中的一个重要组件,用于在应用程序内展示网页内容。在iOS 8及更高版本中,我们可以使用WKWebView来替代早期的UIWebView,因为WKWebView提供了更好的性能和稳定性。本教程将...
在实际开发中,你可以通过引入`crosswalk-webview-14.43.343.23-arm`这样的库文件,将Crosswalk-WebView集成到Android项目中。这个特定版本是针对ARM架构的设备,包含了特定版本的Crosswalk-WebView,确保在相应设备...
WebView与JavaScript的交互是iOS应用与Web技术融合的关键,它使得原生应用能够利用Web技术来增强用户体验,同时也让网页能够调用iOS原生功能。本资料“ios-webView与js的交互.zip”主要探讨了如何在iOS应用中实现...
Android逆向-frida hook 脚本- hook webview。 frida hook webview的loadurl方法,获取加载的地址和调用链。 Java.choose 获取到webview的对象,可以主动调用webview的方法。
【WebView2Loader.dll详解】 WebView2 是微软推出的一款现代Web技术框架,用于在桌面应用程序中嵌入Web内容。它基于Chromium项目,提供了与最新Web标准兼容的浏览器内核,使得开发者可以在桌面应用中轻松集成网页...
在SwiftUI中,WebView是一个非常重要的组件,它允许开发者在应用中嵌入网页内容,提供丰富的交互体验。SwiftUI是苹果公司推出的声明式用户界面框架,适用于iOS、macOS、watchOS和tvOS等平台。在SwiftUI中使用WebView...