将需要的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\"
[_webView loadHTMLString:header_HTML baseURL:[[NSBundle mainBundle] bundleURL]] 含裤
}
}
接到一个需求,需要我调用本地.js文件里的方法,我一开始就想当然的直接用webView去调用:
结果是一直在打印error,后来发现并不能去调.js文件里的东西,但是可以用html文件包装一下.js文件
这样就能访问到generatorBrainKey()方法了,但是在真机测试的时候又出现问题了,因为我们写的地址是固定的,无法找到指定的.js文件弯薯,这埋卜者个问题的当时纠结了半弊搭天,结果发现解决办法就是把前面的地址去掉只保留文件名就行.
这样就没问题了.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)