2013-04-24 158 views
1

下面是加載HTML代碼UIWebView加載服務器HTML,如何加載本地圖像?

UIWebView *webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
[[NSBundle mainBundle] pathForResource:@"111" ofType:@"jpg"]; 
NSURLRequest *repuest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://192.168.0.5/index.html"]]; 
[webView loadRequest:repuest]; 
[self.view addSubview:webView]; 

下面是HTML代碼

<img src="111.jpg" /> 
<hr /> 

這樣做的圖像無法加載。在這種情況下,如何將HTML加載到圖片中?

+1

可能的重複http://stackoverflow.com/questions/747407/using-html-and-local-images-within-uiwebview。 – 2013-04-24 07:30:49

+0

也許你需要指定一個'baseurl'? – 2013-04-24 07:31:11

+0

不重複。我的HTML位於服務器之上。 – 2013-04-24 07:36:47

回答

0

如果在沒有相對鏈接到任何東西,但圖像的只有一個HTML頁面,您可以設置基本URL請求

,這意味着:所有相對URL被認爲是相對於這個基本URL


但是如果你的html在服務器和本地圖像上使用css/js/html文件,你將需要2個基址,這是不可能的。

你唯一的選擇就是重寫html,只對絕對URL使用絕對URL,然後設置基本URL。

+0

(絕對網址不酷但我沒有看到另一個非hackisch的方式 – 2013-04-24 07:52:12

+0

僅供參考:您也可以動態地重寫html,下載它,搜索所有img標籤並替換它) – 2013-04-24 07:53:52

+0

Consid可持續的複雜性啊。 – 2013-04-24 07:56:56

0

好的,這是經過驗證和測試的代碼。應該爲你工作。

NSString *imagePath; 
NSBundle *bundle = [NSBundle mainBundle]; 
NSString *path = [bundle bundlePath]; 
imagePath = [NSBundle pathForResource:@"111" ofType:@"jpg" inDirectory:path]; 

NSString *fixedURL = [imagePath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
fixedURL = [NSString stringWithFormat:@"file://%@",fixedURL]; 
NSString *commentHtml = [NSString stringWithFormat:@"<img src=\"%@\"/>", fixedURL]; 
NSString *html3 = [NSString stringWithFormat:@"<html><head/><body><div><b>COMMENTS:</b></div>%@</body></html>", commentHtml]; 

[webView loadHTMLString:html3 baseURL:nil]; 
+0

我需要在上面的HTML中加載本地圖像。 – 2013-04-24 08:05:39

+0

你有哪些地方形象?在我們的文檔目錄中? – 2013-04-24 08:07:18

+0

APP中的圖片,以上服務器上的HTML。 – 2013-04-24 08:27:22