3

以下代码

<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>

来自苹果的文档

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 中无效?

4

1 回答 1

0

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

但是,有几点想法:

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

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

  • 我无法判断这是否仅存在于您在问题中发布的 HTML 中,或者是否也存在于真实代码中。但是,您的img srcURL 中有空格,在"images/". 那显然会打破这种局面。

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

    webview.scalesPageToFit = YES;

反正我能想到的就这么多了。就像我说的,它对我有用。这不是图像本身,也不是 Mobile Safari 与UIWebView.

仔细检查并报告:)

于 2012-07-26T01:28:26.547 回答