2017-09-01 42 views
0

我遇到了一个问题,即我的应用程序的一项功能使用户能够与其他用户共享链接。一旦链接被共享,它就会显示为一个可点击的视图,其中包含关于相应网页(来自HTML代码中的开放图形协议)的一些信息,例如标题,“主图像”等。当网站使用HTTPS时。Swift - 无法从http链接获取信息

然而,当仅使用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> 

但是,在官方文档中,指定Apple可能会拒绝使用此标记的任何应用程序。最好的解决方案是为特定的域添加例外,但我不能真正猜测哪些链接将被共享...

您有任何解决方案吗?

+0

我已经在我的应用程序中使用了那些plist设置,并且这个设置已经在昨天被批准了。因此,虽然苹果可能不满意它,你**可以**上传和发布应用程序 – Eric

回答

1

你可以使用这个开发没有问题。我看到有人在提及他们已经使用这个应用程序商店发布了应用程序。

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

当然,实际的答案是使用https而不是绕过ATS。

+0

我知道这一点,但问题是,我不是谁会选择链接。用户选择他们想要分享的链接。因此,如果用户与不使用HTTPS的网站共享链接,他们将无法做到这一点。 – Lantian