2011-04-13 53 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" ... 

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

相关问题