ios - Swift - 无法从http链接获取信息

标签 ios swift

我的应用程序的一项功能遇到问题,该功能允许用户与其他用户共享链接。共享链接后,它会显示为一个可点击的 View ,其中包含有关相应网页的一些信息(来自 HTML 代码中的 Open Graph 协议(protocol)),例如标题、“主图像”等。这效果非常好当网站使用 HTTPS 时。

但是,当它仅使用 HTTP 时,我收到以下错误:

NSLocalizedDescription=The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

根据我的研究,我发现解决方案是通过将以下行添加到 info.plist 来关闭应用程序传输安全性:

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

但是,在官方文档中,指定苹果可能会拒绝任何使用此标签的应用程序。最好的解决方案是为特定域添加异常(exception),但我无法真正猜测哪些链接将被共享...

你能为我提供任何解决方案吗?

最佳答案

您可以将其用于开发,没有问题。我看到有人提到他们也使用这个向应用程序商店发布了应用程序。

生产解决方案是添加您需要访问的特定主机,而不是 AllowsArbitraryLoads

当然,实际的答案是使用 https 并且根本不绕过 ATS。

关于ios - Swift - 无法从http链接获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46003588/

相关文章:

ios - 底部标签栏上方的间隙 - 嵌入式 NavigationController + 嵌入式 TableViewController

swift - 如何从 CMutablePointer 取回值?

ios - 将 iOS 相机聚焦在点击位置

ios - 如何使用 For/While 循环添加多个图像及其每个约束

ios - 如何在 TableViewCell 中将 UIButton 居中?

swift - 为什么不能在初始化器中使用 if let 语法从子类的不可失败初始化器调用可失败初始化器? [ swift ]

xcode - 如果不让 - 在 Swift 中

ios - ionic ios 应用程序开发

ios - 在自定义 UIcollectionview 单元格的标签中显示计时器

ios - 从动态数组的部分中的标题中返回标题