作者:手机用户2502878095 | 来源:互联网 | 2023-08-21 16:14
记录一下。webview(或wk)用loadHTMLString加载内容时,如果只是单纯的html内容,样式等都写在内部,直接设置baseURL为nil即可。不过当html里包含外部样式或
记录一下。
webview(或wk)用 loadHTMLString加载内容时 ,如果只是单纯的html内容,样式等都写在内部,直接设置baseURL为nil即可。
不过当html里包含外部样式或调用外部js文件时,就需要通过baseurl设置一下路径。
[_webView loadHTMLString:html baseURL:myUrl];
举个最简单例子:
"stylesheet" href="testwai.css">
123
i'm content!
这里的html内部,有一个外部css引用,假设这个css文件在项目里
我们可以实现:
-(void) loadBundle{
NSMutableString *html = [NSMutableString string];
[html appendString:@""];
[html appendFormat:@""stylesheet\" href=\"testwai.css\">"];
[html appendString:@"qfdkjeakofjadfdsjf
"];
NSURL *myUrl = [NSURL fileURLWithPath:[NSBundle mainBundle].bundlePath];
[_webView loadHTMLString:html baseURL:myUrl];
}
这里,重点在于这个baseURL参数,由于在项目里,所以路径用 [NSBundle mainBundle].bundlePath 获取即可。
同理如果是沙盒路径:
-(void) loadLocal{
NSMutableString *html = [NSMutableString string];
[html appendString:@""];
[html appendFormat:@""stylesheet\" href=\"testwai.css\">"];
[html appendString:@"qfdkjeakofjadfdsjf
"];
NSString *cssUrl = [NSString stringWithFormat:@"%@",NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)];
NSURL *myUrl = [NSURL fileURLWithPath:cssUrl];
[_webView loadHTMLString:html baseURL:myUrl];
}
示例demo下载
测试项目里,点击下图这个即可。
![](https://img1.php1.cn/3cd4a/24ed6/2be/c264411b46573b7a.jpeg)