2014-06-19 43 views
1

我嘗試在我的web視圖中加載本地HTML頁面。它加載但圖像未加載。在iphone中加載HTML資源

我的結構文件的情況如下:index.html中

enter image description here

圖像路徑

Web視圖
<div class = "logo mt10 text-center"> <img src="images/logo.png" alt="Logo Goes Here"> </div> 

加載HTML頁面

NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; 
    NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil]; 
    NSString *path = [[NSBundle mainBundle] bundlePath]; 
    NSURL *baseURL = [NSURL fileURLWithPath:path]; 
    [web loadHTMLString:htmlString baseURL:baseURL]; 

幫助我解決這個

+0

是你的css loading? – manujmv

+0

不,我的CSS也不加載 – user2893370

+0

@ user2893370希望你試過我的解決方案給出如下。 – z22

回答

1

嘿,你可以用下面這樣的方式:

使用相對路徑到您文件或文件夾您的本地HTML與相對引用將爲您工作。

以下步驟:

  1. 將資源到您的Xcode項目(我拖着從我的觀察窗的名爲WWW的文件夾),你會得到兩個選項「創建任何附加組文件夾「和」爲任何添加的文件夾創建文件夾引用「。
  2. 選擇「創建文件夾引用」選項。
  3. 使用以下代碼使用相對路徑加載文件。

    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"www"]]; 
    

    [webview loadRequest:[NSURLRequest requestWithURL:url]];

你所有的相對鏈接(如img/.gif,js/.js)都會得到解決。

然後,您可以參考你的圖片是這樣的:

<img src="myimage.png"> 

我認爲你的問題僅僅是因爲相對路徑。請按照上述步驟操作。你會看到在webview上加載的圖像。

+0

它的工作!!!!!!!感謝您的回答!! – user2893370

+0

很高興知道這一點。 :) – Adi

0

你必須給被捆綁的圖像的完整路徑與添加文件一起://作爲前綴,如下 更改圖像路徑##圖片##如下

<div class = "logo mt10 text-center"> <img src="##image##" alt="Logo Goes Here"> </div> 

然後在你的代碼做這種改變

NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; 
NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil]; 
htmlString =[htmlString stringByReplacingOccurrencesOfString:@"##image##" withString:[NSString stringWithFormat:@"file://%@",[NSBundle mainBundle] pathForResource:@"logo" ofType:@"png"]]]; 
NSURL *baseURL = [NSURL fileURLWithPath:path]; 
[web loadHTMLString:htmlString baseURL:baseURL]; 
+0

感謝您的回覆!但不工作! – user2893370

+0

請發佈您的代碼,你已經嘗試過。它應該工作 –

+0

我alredy張貼有問題的代碼。 – user2893370

0

你所涉及的圖像的路徑是:src="images/logo.png"

而XCode找不到路徑。

如果你想要你的路徑是這樣的,你將不得不檢查xcode中的create folder references for any added folders選項,同時添加整個html文件夾和圖像文件夾。

之後,您將獲得文件夾images作爲藍色文件夾,而不是您現在得到的黃色。

否則更改您的路徑並刪除images/。只要保持logo.pngsrc

希望有所幫助。

0

您需要將您的HTML文件夾添加爲reference

然後加載HTML這樣的:

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"HTML"]]; 
[web loadRequest:[NSURLRequest requestWithURL:url]]; 
0

這是您加載HTML文件到網頁視圖的方式。路徑應該是相對的。在

<img src="myimage.png"> 

形式

NSString *path = [[NSBundle mainBundle] bundlePath]; 
NSURL *baseURL = [NSURL fileURLWithPath:path]; 
[webView loadHTMLString:htmlString baseURL:baseURL]; 

和加載圖像參考this的細節

+0

感謝您的回覆!但我不想更改圖像路徑。 – user2893370

+0

試試像'../ images/myImage.png' –