我的应用程序的一项功能遇到问题,该功能允许用户与其他用户共享链接。共享链接后,它会显示为一个可点击的 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/