今天在項目中遇到一個問題:我將H5的文件拖入項目中,在webView上添加H5,運行時發現H5的樣式與圖片等都沒
屏幕快照 2016-07-06 11.33.22.png
有了。經過多種測試后發現:是路徑的問題。
在ios項目下添加本地HTML/js/css/image 當拖入項目時有兩種選擇:
一個是 Create groups for any added folders (創建虛擬結構-包結構)
一個是 Create folder references for any added folders (創建實體結構)
如果選擇前者,當APP編譯過后引入的文件會被放在同一個文件夾下面會忽略你原本的文件夾。因此在HTML文件中的路徑就會出現問題。如果你選擇了前者那么HTML文件中引入CSS,js,圖片等就不需要添加前綴路徑了,直接寫文件名就行。
引入文件方式:
NSString * htmlPath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSString * htmlString = [NSString stringWithContentsOfFile:htmlPath encoding:NSUTF8StringEncoding error:nil];
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]];
[self.webView loadHTMLString:htmlString baseURL:baseURL];
如果選擇后者,當APP編譯過后引入的文件會按照原本的目錄結構存放,這個時候就需要添加相對路徑。
引入文件方式:
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"huaiha/index.html" relativeToURL:[[NSBundle mainBundle] bundleURL]]]];