远程图像不显示在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
之间的任何区别。
仔细检查并回报:)