根据以下错误消息,我需要在info.plist中设置什么来启用HTTP模式?
传输安全性已阻止明文HTTP(HTTP://)资源因为它是不安全的。可以通过以下方式配置临时异常应用程序的Info.plist文件。
假设我的域名是example.com。
根据以下错误消息,我需要在info.plist中设置什么来启用HTTP模式?
传输安全性已阻止明文HTTP(HTTP://)资源因为它是不安全的。可以通过以下方式配置临时异常应用程序的Info.plist文件。
假设我的域名是example.com。
当前回答
Use:
在类型为Dictionary的plist文件中添加新项NSAppTransportSecurity,然后在类型为Boolean的字典中添加子项NSAllowsArbitraryLoads,并设置bool值YES。这对我有用。
其他回答
在Swift 5中,我们有两种方法来解决这个问题。我们需要在info.plist中添加NSAppTransportSecurity
我给出了info.plist源代码和图片以供参考
第一个是在info.plist中添加NSAppTransportSecurity->NSAllowsArbitraryLoads。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
</dict>
</dict>
</plist>
另一种方法是在info.plist中添加NSAppTransportSecurity->NSExceptionDomains,并添加URL的域,并启用加载子域(NSIncludesSubdomains)和允许不安全HTTP加载(NSExceptionAllowsInsecureHTTPLoads)的权限
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>www.7timer.info</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
</dict>
</plist>
使用NSAppTransportSecurity:
您必须在info.plist文件中的NSAppsTransportSecurity字典下将NSAllowsArbitraryLoads键设置为YES。
如果您使用的是Xcode 8.0+和Swift 2.2+,甚至是Objective C:
如果要允许到任何站点的HTTP连接,可以使用以下键:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
如果您知道要连接到哪些域,请添加:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>example.com</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>
以下是直观的设置:
使用NSExceptionDomains可能不会同时应用效果,因为目标站点可能会通过http从外部域加载资源(例如js文件)。它也可以通过将这些外部域添加到NSExceptionDomains来解决。
若要检查哪些资源无法加载,请尝试使用远程调试。这里有一个教程:http://geeklearning.io/apache-cordova-and-remote-debugging-on-ios/