iOS WebView加載本地js、css文件
思路:對html進行操作,然后webView loadHtml
將需要的js、css資源導入創建好的bundle下,如上圖
WKWebView *webView = [[WKWebView alloc]initWithFrame:frame]];
這個filePaths 就是需要加載的 js、css文件在本地的路徑,是個數組,因為可能需要加載本地的多個js、css文件, 如果需要加載的js、css文件較多,可以讓后臺傳給你對應js、css文件的路徑,注意傳的路徑要跟導入本地的資源路徑一致,否則會加載失敗。
//路徑path
NSArray *pathArray? = dict[@"filePath"];
if (pathArray) {? ? ? ? ? ??
NSError *error;? ? ? ? ? ??
//獲取網絡的HTML? ? ? ? ? ??
NSString * online_HTML? = [NSString stringWithContentsOfURL:[NSURL URLWithString:url] encoding:NSUTF8StringEncoding error:&error];? ? ? ? ? ?
?if(!error) {? ? ? ? ? ? ? ??
//以分割? ? ? ? ? ? ? ?
?NSArray * array_HTML? ? = [online_HTML componentsSeparatedByString:@"</head>"];? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
NSMutableString *header_HTML = [[NSMutableString alloc]initWithString:array_HTML.firstObject];? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
for (NSString *path in pathArray) {? ? ? ? ? ? ? ? ? ??
//注意這里的hightcharts.bundle,更改成你本地的bundle名
NSString *filePath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"hightcharts.bundle/%@",path] ofType:nil];? ? ? ? ? ? ? ? ? ?
if ([filePath hasSuffix:@"js"]) { ? ? ? ? ? ? ? ? ? ? ??
[header_HTML appendFormat:@"<script src=\"%@\"><\script>",filePath];? ? ? ? ? ? ? ? ? ?
}else if ([filePath hasSuffix:@"css"]){? ? ? ? ? ? ? ? ? ? ? ??
[header_HTML appendFormat:@"<link rel=\"stylesheet\" href=\"%@\" />",filePath];? ? ? ? ? ? ? ?
? ? ? ?}? ? ? ? ? ? ? ?
?}? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?[header_HTML appendString:@"</head>"]; ? ? ? ? ? ? ?
?[header_HTML appendString:array_HTML.lastObject];? ? ? ? ? ? ? ??
[_webView loadHTMLString:header_HTML baseURL:[[NSBundle mainBundle] bundleURL]];? ? ? ? ? ??
? ? ? ?}? ? ? ??
}