远程图像不会显示在UIWebView中显示的html页面中

时间:2012-07-25 22:02:54

标签: ios uiwebview

以下代码

<a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?i=156093464&id=156093462&s=143441">
<img height="15" width="61" alt="Randy Newman - Toy Story
- You&#39;ve Got a Friend In Me" src="http://ax.phobos.apple.com.edgesuite.net/images/
badgeitunes61x15dark.gif"></img>
</a>

来自apple的文档

http://developer.apple.com/library/ios/#featuredarticles/iPhoneURLScheme_Reference/Articles/iTunesLinks.html#//apple_ref/doc/uid/TP40007896-SW1

当包含该href的html页面被加载到浏览器中时,将显示图像,但是当它加载到UIWebView时,它不会显示。

ShouldStartLoadWithRequest:不会调用以下URL

http://ax.phobos.apple.com.edgesuite.net/images/
badgeitunes61x15dark.gif

为什么不调用它,为什么它在浏览器中工作而在UIWebView中不起作用?

1 个答案:

答案 0 :(得分:0)

好吧,我刚用你的HTML构建了一个原型,它对我来说很好。

然而,一些想法:

  • 首先,如果您在网络视图委托中实施webView:shouldStartLoadWithRequest:navigationType:,请不要期望对HTML网页中的每个项目进行回调。如果我没记错的话,它只会调用顶级请求(例如整个页面)。所以,我不希望只为那个img资源获得回调。

  • 由于我们已经确定实施webView:shouldStartLoadWithRequest:navigationType:无法执行您想要的操作,因此您可能希望完全删除它。当我第一次懒洋洋地把它放在我的代码中时,我忘记了return YES;来自该方法。由于Objective-C是一种相当松散的语言,因此构建并运行了应用程序,但显然将NO作为该方法的隐式返回值。 NO停止加载请求。如果图像是您拥有的样本页面中唯一的内容,那么您将看不到任何内容(并且可能错误地认为这仅仅是因为img本身)。

  • 我无法判断这是仅在您在问题中发布的HTML中,还是在实际代码中。但是,在img src之后,您的"images/"网址中有空格。这显然会让这个休息。

  • 在我的测试中,我还开始使用一个不会缩放内容以适合的网页。该图片相当小,因此如果您不缩放网页视图以适应并在iPhone / iPod上查看,您可能没有注意到这么小的图像。

    webview.scalesPageToFit = YES;

无论如何,这就是我所能想到的。就像我说的,它对我有用。这不是图像本身,也不是Mobile Safari与UIWebView之间的任何差异。

仔细检查并报告:)