WKWebView本地文件加载方式变更及Swift新版本兼容问题咨询
WKWebView加载本地文件的默认方式变化解析
嘿,关于WKWebView加载本地文件的事儿,我得跟你好好唠唠——这和UIWebView,还有旧版本WKWebView(iOS 10 & macOS 10.12)的玩法完全不一样了!
现在WKWebView加载本地文件的默认操作,已经从Bundle.main.path换成了Bundle.main.url,对应的加载函数也变成loadFileURL作为首选方案。
我当然清楚.path和.url压根不是一回事儿,而且过去这俩方法都能正常跑——以前.path才是大家默认用的路子。但最近Swift的新版本好像把几乎所有带.path相关的用法都搞崩了,这确实挺让人头疼的。
给你举个新旧写法的对比,更直观:
旧写法(现在可能失效)
if let filePath = Bundle.main.path(forResource: "index", ofType: "html") { let fileURL = URL(fileURLWithPath: filePath) webView.load(URLRequest(url: fileURL)) }
新推荐写法
if let fileURL = Bundle.main.url(forResource: "index", withExtension: "html") { webView.loadFileURL(fileURL, allowingReadAccessTo: fileURL.deletingLastPathComponent()) }
内容的提问来源于stack exchange,提问作者JDev
相关产品推荐
相关产品推荐

