iOS|iOS WKWebview加载本地的HTML文件并带参数

加载本地的HTML文件

NSString * path = [Utility getAbsolutePathWithRelativePath:downloadModel.htmlPath]; //path为HTML的绝对路径 [self.webView loadFileURL:[NSURL fileURLWithPath:path] allowingReadAccessToURL:[NSURL fileURLWithPath:path]];

【iOS|iOS WKWebview加载本地的HTML文件并带参数】带参数
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));

  1. 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。
参考:本地html加载时带参数的问题

    推荐阅读