我尝试创建一个iOS应用程序,它有一个UIWebview,我想在其中加载网站。我尝试使用EVURLCache进行缓存。但它不会从我的项目中的PreCache文件夹加载。
应用程序第一次运行正常。但是当我再次尝试再次运行时,它只显示空白屏幕。我认为应用程序尝试从缓存加载页面,但应用程序无法找到其缓存..
我使用https://github.com/evermeer/EVURLCache进行缓存。我通过pod安装
import UIKit
class MainVC: UIViewController, UIWebViewDelegate {
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
webView.delegate = self
let url = URL(string: BASE_URL)
let request = URLRequest(url: url!)
webView.loadRequest(request)
}
func webViewDidStartLoad(_ webView: UIWebView) {
print("*****************")
print(" webViewDidStartLoad(")
print("*****************")
}
func webViewDidFinishLoad(_ webView: UIWebView) {
print("*****************")
print("webViewDidFinishLoad")
print("*****************")
}
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
EVURLCache.LOGGING = true // We want to see all caching actions
EVURLCache.MAX_FILE_SIZE = 26 // We want more than the default: 2^26 = 64MB
EVURLCache.MAX_CACHE_SIZE = 30 // We want more than the default: 2^30 = 1GB
EVURLCache.activate()
return true
}
我找到了缓存文件夹
04/10/2017 18:01:41:952 FedNet)[1696:.] EVURLCache.swift(245) storeCachedResponse(_:for:):
CACHE save file to Cache : /Users/apple/Library/Developer/CoreSimulator/Devices/BF935382-BD49-4F37-85A1-C3FA0E1B094B/data/Containers/Data/Application/AF33E59E-1BB4-46CC-9236-BEB42F53D606/Documents/Cache/www.fednetbank.com/corp/l001/consumer/theme/login/img/banner.jpg
当我使用PreCache文件夹运行应用程序时,它会给我一个空白屏幕....
答案 0 :(得分:1)
这可能是由重定向引起的。重定向不会被缓存。我尝试用协议解决这个问题,但我已经注意到它有时会失败。您可以尝试从EVURLCache中删除以下行,然后再试一次吗?
URLProtocol.registerClass(EVURLProtocol.self)