【问题标题】:Remote image doesn't get displayed in html page displayed in UIWebView远程图像未显示在 UIWebView 中显示的 html 页面中
【发布时间】:2012-07-25 22:02:54
【问题描述】:

以下代码

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

【问题讨论】:

    标签: ios uiwebview


    【解决方案1】:

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

    不过,有几点想法:

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

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

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

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

        webview.scalesPageToFit = YES;
    

    不管怎样,我能想到的就这么多。就像我说的,它对我有用。这不是图像本身,也不是 Mobile Safari 与 UIWebView 之间的任何区别。

    仔细检查并报告:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多