在UIWebView中加载本地HTML文件、CSS文件、JS文件没有任何问题,正常载入和现实在UIWebView上。
但是在WKWebView中加载本地HTML文件、CSS文件、JS文件,往往加载不上,导致界面样式和事件远远不是自己想要的。网上搜索许久都没有搞定,自己翻墙和研究终于找到新大陆。
现在就和大家分享下,本人在项目中使用WKWebView加载本地CSS文件没有效果的解决办法。方法原理在HTML文件、JS文件同样适用。
首先将资源文件放在一个目录下,以备后期调用
目录结构如下,随意放,只要知道路径就可以
重点来了:
在WKWebView加载HTML代码或者本地HTML文件时进行处理
直接上源码了,创建WKWebView代码就不上了,直接来加载代码
重点之处在于baseUrl
处,baseUrl
需要设置本地资源文件所对应的路径
/// [self.viewModel getHtmlString] 此方法是HTML串
- (void)showInWebView {
NSURL *baseUrl = [NSURL URLWithString:@"file:///assets/"];
[self.webView loadHTMLString:[self.viewModel getHtmlString] baseURL:baseUrl];
}
这样设置就可以正常加载CSS文件并且显示
同时贴上 CSS文件使用方式。这里没有什么特别的,直接使用NSBundle加载CSS文件,但是不设置上面的baseUrl
,这个CSS文件是不能加载的
如果在不行,就把对应的HTML文件或者CSS文件拷贝到,对应执行类文件(加入执行WebView加载的方法在A类中,就把对应的HTML、CSS文件拷贝到当前目录中)同目录下,在试试
到此WKWebView加载本地HTML文件、CSS文件、JS文件问题就搞定了