【发布时间】:2015-01-08 00:00:06
【问题描述】:
缓存清单工作正常,并且在 IOS 8 的 safari 中触发了事件。在 WKWebView 中根本不工作还有其他人解决这个问题吗?
导入 UIKit
导入 WebKit
class ViewController: UIViewController {
@IBOutlet var containterView : UIView! = nil
var webView : WKWebView?
override func loadView(){
super.loadView()
self.webView = WKWebView()
self.view = self.webView!
}
override func viewDidLoad() {
super.viewDidLoad()
var url = NSURL(string:"http://html5demos.com/offlineapp")
var req = NSURLRequest(URL:url)
self.webView!.loadRequest(req)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
如果我使用 html5test.com,应用程序缓存会返回支持
编辑:
window.applicationCache 在从 WKWebView 加载时也不返回 undefined
console.log("Initializing Page");
if (window.applicationCache == undefined){
console.log("Application cache not suported!");
updateSplash();
}
console.log(window.applicationCache); returns: DOMApplicationCache
编辑2:
if (typeof window.applicationCache.update === 'function'){
console.log("Application has method update");
console.log(window.applicationCache.update); //shows swapCache() and update() methods
window.applicationCache.update();
}
window.applicationCAche.update() 抛出错误:InvalidStateError:DOM 异常 11:尝试使用不可用或不再可用的对象。
【问题讨论】:
-
我不明白为什么有人会对此投反对票。 ApplicationCache 是一个主要功能,不能与 WKWebView 一起使用是一个很大的倒退。
-
这让我很头疼。为什么他们会支持本地存储而不是缓存清单?关于如何使用本机功能解决此问题的任何想法?看起来我必须将所有的 html/css/js/images 都存储在设备上……为什么是苹果!