在 WKWebview 中使用本地资源
Posted
技术标签:
【中文标题】在 WKWebview 中使用本地资源【英文标题】:Use local resources in WKWebview 【发布时间】:2015-06-10 02:58:38 【问题描述】:如何让 WKWebview 使用本地 .js、.css 和/或本地图像文件来代替远程文件,以加快网页加载速度。 另外,我注意到在实现 WKNavigationDelegate 方法时不会调用 NSURLProtocol 方法(通过注册类实现时),知道为什么吗?
【问题讨论】:
【参考方案1】:在 ios 9 API 中有一种加载本地资源的新方法
/*! @abstract 导航到文件系统上请求的文件 URL。 @param URL 要导航到的文件 URL。 @param readAccessURL 允许读取访问的 URL。 @discussion 如果 readAccessURL 引用单个文件,则 WebKit 只能加载该文件。 如果 readAccessURL 引用了一个目录,那么 WebKit 可能会加载该文件中的文件。 @result 给定文件 URL 的新导航。 */
@available(iOS 9.0, *)
func loadFileURL(URL: NSURL, allowingReadAccessToURL readAccessURL: NSURL) -> WKNavigation?
【讨论】:
感谢您的调查。根据要求,我需要在 ios7 和 8 中工作的解决方案:( 问题是关于使用缓存的 css/jss 资产来加速远程网站的导航。这个答案是关于导航到设备上的本地网页。【参考方案2】:阅读大量文档后,我意识到/了解到如果使用 WKWebviews,我将无法跟踪 URL。我现在不得不求助于 UIWebView。
【讨论】:
为什么您认为您无法使用 WKWebView 跟踪 URL?看看WKNavigationDelegate以上是关于在 WKWebview 中使用本地资源的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS WKWebView 中保留“Referer”标头?
在 WKwebView (SWIFT) 中加载本地资源以及 HTML 字符串?