主要是我试图通过Socket.io获得连接但很快发现没有来自"外面"可以加载到我的Cordova / iOS应用程序中。 我检查了config.xml中的白名单设置。他们似乎没事,但万一我加了
不幸的是,没有帮助。 我试图删除白名单插件
cordova plugin add org.apache.cordova.whitelist
插件" cordova-plugin-whitelis"在项目中不存在。看到
cordova plugin list
。
所以我检查了cordova插件列表并返回了
cordova-plugin-console 1.0.1 "Console"
cordova-plugin-dialogs 1.1.1 "Notification"
cordova-plugin-vibration 1.2.0 "Vibration"
cordova-plugin-whitelist 1.1.0 "Whitelist"
我猜上面的那个可能是某种默认的?
我的下一个尝试是从index.html中删除以下元标记
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline'; media-src *">
但这对......都没有帮助......
答案 0 :(得分:5)
在Cordova设置上经过几个小时的努力之后,我仍然不确定我安装的Whitelist是什么,以及设置它的最佳方法是什么
但有一点肯定有助于我插入Info.plist
(可能类似于HelloWorld-Info.plist
)
以下标签
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
之后我可以通过网络套接字连接或加载外部图像!
我希望这会帮助其他人。
答案 1 :(得分:2)
iOS 9有一项名为App Transport Security(ATS)的新安全功能,它强制在来自HTML5应用程序的AJAX调用中使用https,如Cordova或Ionic这样的框架。有一个新的插件可以通过添加上面提到的Adam提供的NSAppTransportSecurity标记来覆盖此行为。它被称为“cordova-plugin-disable-nsapptransportsecurity”。为了解决问题,请运行:
cordova插件添加cordova-plugin-disable-nsapptransportsecurity
有关此问题的更多信息,请参阅此处: iOS9 ATS: what about HTML5 based apps?
插件信息在这里: https://www.npmjs.com/package/cordova-plugin-disable-nsapptransportsecurity
此解决方案独立于白名单插件,在iOS中似乎没有效果。您也可以不为iOS安装它。
答案 2 :(得分:1)
我不确定图片来源是否来自&#34; http&#34;协议或&#34; https&#34;。我的图片全部来自&#34; http&#34;,没有正确显示。将源更改为https后,它开始显示图像。