2011-04-13 73 views
1

我的網頁上有1000個圖像和值。每當我將頁面加載到UIWebView時,它都會加載值,但由於有這麼多的圖片需要時間下載。將網頁加載到UIwebview中,但來自本地的圖像

所以有什麼辦法,我可以從網站下載頁面,但從本地圖像。

任何幫助真的很感激。

謝謝

安基塔

+0

可以請你給我詳細一點.. – ajay 2011-04-13 10:21:37

+0

讓我知道你需要什麼細節?在簡單的例子中,我可以說我有頁面google.com,我希望它的圖像從本地和所有其他網頁加載從URL http://www.google.com加載。合理? – Anks 2011-04-13 10:33:40

回答

4

如果你的網絡服務器,從和圖像在本地

HTML
  1. yourBaseURL = [[NSURL頁頭] initFileURLWithPath:[一個NSBundle mainBundle] bundlePath];

  2. [webView的loadHTMLString:@ 「YourHTML」 基本URL:yourBaseURL]

和你的HTML包含存儲像

圖片代碼像本地圖像的名稱 - > imgage SRC ='fig1.jpg width = 150 height = 150 align =「left」

比這應該工作。

不完全按照您的要求,雖然這樣你可以在webView中加載本地圖像。

+0

我沒有完全明白這一點。每當我把東西放入loadHTMLString它是否取代來自基地網址的東西?你能解釋一下嗎? – Anks 2011-04-13 10:59:22

1

基本上是:從服務器

下載HTML。

NSURL *URL = [[NSURL alloc] initWithString:@"http://www.example.com/page.php"]; 
NSError *error = nil; 
NSStringEncoding encoding; 
NSString *theSource = [[NSString alloc] initWithContentsOfURL:URL usedEncoding:&encoding error:&error]; 

將文件引用替換爲本地加載圖像。
請注意雙斜線,這似乎很重要。

// Replace: 
<img src="File.png"> 
// By something like: 
<img src="file://Path//To//Resources//File.png"> 

的詳細信息如何做到這一點(檢查由Joe D'安德烈後):
Link to resources inside WebView - iPhone

最後做出一個UIWebView加載HTML:

[webView loadHTMLString:htmlString baseURL:baseURL]; 

現在應該加載來自服務器的「新鮮」HTML與本地圖像。

+0

你不覺得它將需要相同的時間來給源代碼或在webview中加載頁面嗎?因爲我們無論如何ping服務器來獲取HTML文件,我們將再次ping通加載webview。 – Anks 2011-04-13 10:42:55

+0

我只是回答你在哪裏詢問。 UIWebView通常:下載源代碼=>渲染=>下載其他文件=>顯示。在這種情況下:下載源=>更改源=>渲染=>加載本地文件=>顯示。 「源代碼編輯」步驟沒有任何顯着差異,只是幾個字符串替換。所以(實際上)對性能沒有影響,並節省下載時間。 **注意:**您不會'ping'UIWebView,只能手動傳遞源代碼。 **注意**:更好地獲取XML格式的數據到iPhone而不是刮掉網站,或者它不是你的服務器? – Anne 2011-04-14 10:47:00

0

這對我來說很好。

NSURL *myBaseURL = [[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] bundlePath]]; 
NSString *myString = [[managedObject valueForKey:@"long_presentation"] stringByReplacingOccurrencesOfString:@"/FooFolder/BarFolder" withString:[NSString stringWithFormat:@"%@/FooFolder/BarFolder", [[NSBundle mainBundle] bundlePath] ] ]; 
[attractionWebView loadHTMLString:myString baseURL:myBaseURL]; 

我必須包括對圖像源

img src="FooFolder/BarFolder/my_image.jpg" ... 

得到正確的道路的替代品。

相關問題