【问题标题】:Strange behavior with WKWebView's loadHTMLString method. Images are not loading sometimesWKWebView 的 loadHTMLString 方法的奇怪行为。有时无法加载图像
【发布时间】:2015-09-04 13:36:59
【问题描述】:

我正在做一个mac app项目。使用WKWebView的loadHTMLString方法,我可以构建一个网页视图,除了图像加载部分,它运行良好。

例如:

NSString *string1 = @"<img src=\"https://apppie.files.wordpress.com/2014/09/photo-sep-14-7-40-59-pm_small1.jpg\">"
[pWebView loadHTMLString: string1 baseURL: nil];

效果很好。但是一旦我将https: 更改为http:,网页就坏了,图像不再显示。我已经在 Firefox 浏览器上检查了两个网址,它们都运行良好。我不明白为什么会这样。

然后我尝试将所有http: 替换为https:,网页的大部分图像都能正常加载,但仍然不是全部。(再次,我在 Firefox 中仔细检查,所有图像都没有显示问题),所以我很确定 WKWebView 配置有问题,我该如何解决?非常感谢。

我的 OSX 版本:10.11 public beta 5; xCode 版本:7.0 测试版。

【问题讨论】:

  • 如果你正在为iOS9开发,你必须阅读NSAppTransportSecurity 。这是一个 SO 问题/答案,可以帮助您入门。 http://stackoverflow.com/questions/32382541/app-tranport-security-exeptions-ios9
  • @DavidDelMonte 你拯救了我的一天!您的回答为我指明了正确的解决方案并彻底解决了我的问题。很好的答案,非常感谢。您会将其重新发布为正式答案吗?所以我可以将您的答案标记为最终解决方案。 :)

标签: html image cocoa wkwebview


【解决方案1】:

如果你正在为 iOS9 开发,你必须阅读 NSAppTransportSecurity。 Here is an SO question / 回答让你开始。

我自己的 info.plist 文件包括:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

这可能比我应该的要开放得多,但我会随着时间的推移进行更改以限制对我需要的特定 URL 的访问。链接的 q/a 中也显示了如何执行此操作。

很高兴这有帮助!

【讨论】:

    猜你喜欢
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 2012-05-22
    相关资源
    最近更新 更多