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

下面的代码

<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've Got a Friend In Me" src="http://ax.phobos.apple.com.edgesuite.net/images/ badgeitunes61x15dark.gif"></img> </a> 

来自苹果的文档

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?

那么,我只是用你的HTMLbuild立了一个原型,对我来说工作得很好。

但是,有一些想法:

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

  • 由于我们已经build立了实现webView:shouldStartLoadWithRequest:navigationType:不会做你想要的,你可能想要完全删除它。 当我第一次懒惰地把它放在我的代码中时,我忘了return YES; 从那个方法。 由于Objective-C是一种相当宽松的语言,应用程序已经build立并运行了,但是很显然, NO是来自该方法的隐式返回值。 NO停止加载请求。 如果图片是你的示例页面中唯一的东西,你什么都看不到(也许错误地认为这只是因为img本身)。

  • 我不知道这是否只在您发布在您的问题的HTML,或者如果它在真正的代码中。 但是,在"images/"之后,您的img src URL中有空格。 这显然会使这个突破。

  • 在我的testing中,我也从一个没有扩展内容的网页开始。 这个图像相当小,所以如果你不能缩放你的网页视图以适应,并在iPhone / iPod上查看,你可能没有注意到这么小的图像。

  webview.scalesPageToFit = YES; 

无论如何,这是我能想到的。 就像我说的,它适用于我。 这不是图像本身,或移动Safari,与UIWebView之间的任何区别。

仔细检查并回报:)