加载本地的HTML文件
NSString * path = [Utility getAbsolutePathWithRelativePath:downloadModel.htmlPath];//path为HTML的绝对路径
[self.webView loadFileURL:[NSURL fileURLWithPath:path] allowingReadAccessToURL:[NSURL fileURLWithPath:path]];
带参数
NSString * path = [Utility getAbsolutePathWithRelativePath:downloadModel.htmlPath];//path为HTML的绝对路径
path = [NSString stringWithFormat:@"file://%@?currentTime=%zd",path,second];//转成file路径,并且拼上参数
[self.webView loadFileURL:[NSURL URLWithString:path] allowingReadAccessToURL:[NSURL URLWithString:path]];
说明:
1.WKWebview加载本地的HTML文件,必须使用loadFileURL方法。
- (nullable WKNavigation *)loadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL API_AVAILABLE(macosx(10.11), ios(9.0));
- loadFileURL的参数URL必须是fileURL,如果不是会闪退。
fileURL格式
file:///Users/Library/Developer/CoreSimulator/Devices/02DFBE59-3A27-450A-8173-1F632635114B/data/Containers/Data/Application/FA3C6789-9FC0-48DB-A4C3-1A1E6B25A56E/Documents/unzip/47/index.html
3.带参数的时候使用fileURLWithPath方法转化URL的时候的"?"会被转码成"%3F",然后导致整个URL的解析失败。
解决方法就是手动拼接fileURL格式字符串,然后通过URLWithString方法转化URL。