WKWebview 如何载入本地文件

WKWebview 如何载入本地文件

最近在开发的过程中遇到 bundle 中的 html 文件,真机上不能运行,查看文档针对 WKWebview 载入localfile的描述,其中可以使用以下方法来载入。

/*! @abstract Navigates to the requested file URL on the filesystem.
 @param URL The file URL to which to navigate.
 @param readAccessURL The URL to allow read access to.
 @discussion If readAccessURL references a single file, only that file may be loaded by WebKit.
 If readAccessURL references a directory, files inside that file may be loaded by WebKit.
 @result A new navigation for the given file URL.
 */
- (nullable WKNavigation *)loadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL API_AVAILABLE(macosx(10.11), ios(9.0));

但是,这个只是 iOS 9 的方法,iOS8 怎么办?
在网上可以搜索到 在 temp 中可以使用

/*! @abstract Navigates to a requested URL.
 @param request The request specifying the URL to which to navigate.
 @result A new navigation for the given request.
 */
- (nullable WKNavigation *)loadRequest:(NSURLRequest *)request;

temp 目录由于系统会自动删除目录中的内容,所以 iOS 9 系统还是应该使用 loadFileURL: allowingReadAccessToURL

针对 iOS 8 系统使用 temp 文件, iOS 9 使用 loadFileURL: allowingReadAccessToURL 载入 bundle 中html

文件更新?

本地文件保存目录包含 document、library、temp
temp 目录由于系统会自动删除目录中的内容,由于我们更新的文件适合放在 document 和 library 目录下,但是由于 document 会进行 cloud 同步。

html 更新文件 统一放入 library 中,iOS 8 启动时移动至 temp 目录, iOS 9 直接从 library 目录读取

你可能感兴趣的:(WKWebview 如何载入本地文件)