这是我的组件代码..
render() {
return (
<WebView
source={{uri: 'http://qq.com'}}
style={{marginTop: 20}}
/>
);
}
这是我的&#34; NSAppTransportSecurity&#34;的info.plist代码。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>qq.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
当我跑步时
react-native run-ios
模拟器显示错误
如何解决? (使用RN 0.40版本)
答案 0 :(得分:7)
答案 1 :(得分:4)
您设置了一个例外域,但实际上并没有在其中定义任何例外。您必须告诉它您希望该域的设置不同。你的plist应该是这样的:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>qq.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
答案 2 :(得分:2)
首先,您不应该单独使用NSAllowsArbitraryLoads
密钥,因为您将来几乎肯定会被Apple拒绝进行申请审核。
我认为完全显示http://qq.com
是最简单的配置。 NSAllowsArbitraryLoadsInWebContent
密钥只会受到iOS 10+的影响,因此如果您想支持iOS 9或更早版本,还必须添加NSAllowsArbitraryLoads
。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
如果您想了解更多详情,我建议您参考官方文件:
https://developer.apple.com/library/prerelease/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html
另见:
https://developer.apple.com/news/?id=12212016b
在WWDC 2016上,我们宣布提交给App Store的应用程序将需要在年底支持ATS。为了给你额外的准备时间,这个截止日期已经延长,我们将在新的截止日期确认后再提供更新。
我的意思 future 就是这个截止日期。