萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> Html5 >> Html加載網頁的方式

Html加載網頁的方式

   UIWebView提供了3種加載頁面的方式:

  - (void)loadRequest:(NSURLRequest *)request;

  - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;

  - (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] stringByAppendingPathComponent:@"Htmls"];

  [self.webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:baseURL]];

  這樣,前端工程師就可以很習慣的跟你配合開發了~

copyright © 萬盛學電腦網 all rights reserved