iOS WebView加载本地js、css文件

iOS WebView加载本地js、css文件,第1张

思路:对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\"               

[_webView loadHTMLString:header_HTML baseURL:[[NSBundle mainBundle] bundleURL]]            含裤

       }        

}

接到一个需求,需要我调用本地.js文件里的方法,我一开始就想当然的直接用webView去调用:

结果是一直在打印error,后来发现并不能去调.js文件里的东西,但是可以用html文件包装一下.js文件

这样就能访问到generatorBrainKey()方法了,但是在真机测试的时候又出现问题了,因为我们写的地址是固定的,无法找到指定的.js文件弯薯,这埋卜者个问题的当时纠结了半弊搭天,结果发现解决办法就是把前面的地址去掉只保留文件名就行.

这样就没问题了.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8228211.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存