[ void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;
這裡我只講前兩種,最後一種應該不常用。
- (void)loadRequest:(NSURLRequest *)request
這個方法常用於載入指定url的網頁,但其實它也能用來載入本地資源,而且很方便。
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"Htmls"];
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:filePath]] ];
這樣就把Htmls/index.html載入到webview裡了。要注意的是,Htmls這個資料夾是 以」create folder references for any added folders「方式引入的,而非預設。這樣做有兩個好處,一是編譯之後,資源的目錄結構會和當前項目保持一致,而不會亂七八糟的散落在.app包中,也因此資源文件可以被html輕易找到;二是finder中文件目錄的改變會直接對應到專案中,無需在xcode中手動增刪檔案。
index.html中,前端工程師引用了樣式表
base.CSS這個檔案的路徑是其實是xxx.app/Htmls/css/base.css,而不是xxx.app/css/base.css,它可以被找到,原因是loadReqest這種方式會把目前load的這個html檔案的路徑當作baseURL。
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL
這個方法用來直接載入html程式碼。如果html沒有存在文件中,建議使用這種方法。當然你也可以用這個方法從本地html讀取程式碼,然後載入。但此時請注意baseURL要傳對,否則html中所引用的資源是找不到的。
繼續用上面的例子,要正確載入資源,你得這麼寫:
NSString *baseURL = [[[NSBundle mainBundle] resourcePath]stringByAppendingPathonent:UR"Pet.> :[NSURL fileURLWithPath:baseURL]];
這樣,前端工程師就可以很習慣的跟你配合開發了~
以上就是Html載入網頁的方式內容,更多相關文章請關注PHP中文網(www.php. .cn)!