我们希望首先使用 URL 显示网站,一旦加载,我们如何将数据保存在缓存或 cookie 中,以便之后即使用户离线,它也会加载该形式?
我们遇到的一些解决方案是:
请检查以下代码以获取和保存网站数据
if let url = URL(string: "TYPE YOUR URL") {
let request = URLRequest(url: url)
webView.load(request)
let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data {
self.saveDataLocally(data: data)
}
}
task.resume()
}
//保存数据到本地的函数
func saveDataLocally(data: Data) {
let fileManager = FileManager.default
guard let documentsDirectory = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first else {
return
}
let htmlURL = documentsDirectory.appendingPathComponent("index.html")
do {
try data.write(to: htmlURL, options: .atomic)
} catch {
print("Error saving data: \(error)")
}
}
要获取保存的数据,您可以使用下面提到的代码
let fileManager = FileManager.default
guard let documentsDirectory = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first else {
return
}
let htmlURL = documentsDirectory.appendingPathComponent("index.html")
if fileManager.fileExists(atPath: htmlURL.path) {
if let htmlData = try? Data(contentsOf: htmlURL) {
webView.load(htmlData, mimeType: "text/html", characterEncodingName: "UTF-8", baseURL: htmlURL)
}
} else {
print("Website content not available locally.")
}