【发布时间】:2016-02-12 00:54:25
【问题描述】:
我在一个包含许多不同 URL 的应用上有列表;因此,我将 info.plist 设置为 ...
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
在模拟器上一切正常。在我的测试设备上它不起作用。
错误是...
2015-11-10 18:58:05.159 MPSTApp[520:169178] -canOpenURL:URL 失败:“https:/www.facebook.com/prontosantateresa -- file:///”-错误:“这不允许app查询方案文件”
调用url链接的代码是这样的——
var anchorLink: String?
func loadWebPage(){
let requestURL = NSURL(string: anchorLink!)
let request = NSURLRequest(URL: requestURL!)
webView.loadRequest(request)
}
【问题讨论】:
-
这与 ATS 无关,而是 IOS9 中的一项更改,要求您的应用在其 info.plist 中声明它将查询的 URL 方案 - stackoverflow.com/questions/30987986/…
-
但是如果用户能够发布他们自己的链接呢?或者链接 URL 从 API 更改。这意味着 URL 可以改变并且可以是任何东西。例如,twitter 会对推文中发布的所有链接做什么。
-
您可以打开任何您喜欢的 URL 方案,但如果您要在该方案上调用
canOpenUrl,它必须在您的 Info.plist 中。
标签: ios swift app-transport-security