Cordova 5.3.1和iOS9平台 - 我无法从外部源加载图像和脚本

时间:2015-09-19 10:23:48

标签: ios cordova configuration

主要是我试图通过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 *">

但这对......都没有帮助......

3 个答案:

答案 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后,它开始显示图像。