最近在做混合开发,所以需要引入.js和.css文件,由于需要与Android端的H5页面保持一致,所以就没有修改页面的.js和.css文件的路径引用。
但是,iOS的文件引入机制和Android的不同,iOS会在TARGETS的Copy Bundle Resources中引入加进来的文件,但是这样有一个弊端,所有的文件相当于放到一个目录下面,在引用的时候就不能使用相对路径,这样很难跟Android端保持一致。
因此,就把引用Group改成了folder,也就是黄色文件夹改成了蓝色。
由于H5页面在Test的某个文件夹下,在使用[NSBundlemainBundle]来查找文件路径时,会查找不到。
经过简单的思考和复杂的尝试,终于测试到一种方法,就是先查找文件夹Test的路径,经过相对路径拼接,就获取了文件的绝对路径。
NSString *folderPath = [[NSBundle mainBundle] pathForResource:@"Test" ofType:@""];
NSString *htmlPath = [folderPath stringByAppendingString:@"/todo/incident/todo-incident.html"];
NSURL *url = [NSURL fileURLWithPath:htmlPath];
NSURLRequest *request = [NSURLRequest requestWithURL:url] ;
[self.webView loadRequest:request];
通过测试,页面的js和css样式成功加载,由于太懒没有找别的方法,以后有机会再补充。
注:Test文件夹要添加到Copy Bundle Resources中。