Ios 如何将NSAppTransportSecurity添加到Cordova项目

Ios 如何将NSAppTransportSecurity添加到Cordova项目,ios,cordova,ionic-framework,Ios,Cordova,Ionic Framework,我在做一个爱奥尼亚·科尔多瓦项目。该应用程序需要配置iOS 9版本的应用程序传输安全例外 有人知道如何将以下配置添加到cordova项目配置文件中吗?(config.xml) NSAppTransportSecurity NSAllowsArbitraryLoads 请注意,我总是使用钩子脚本和plistbuddy来完成这项工作。所以我会把它放在hooks文件夹中,确保它设置为可执行文件权限(755可以): 用你的域名替换“域\到\设置\为\例外”,例如myhost.example.com-我

我在做一个爱奥尼亚·科尔多瓦项目。该应用程序需要配置iOS 9版本的应用程序传输安全例外

有人知道如何将以下配置添加到cordova项目配置文件中吗?(config.xml)

NSAppTransportSecurity
NSAllowsArbitraryLoads

请注意,

我总是使用钩子脚本和plistbuddy来完成这项工作。所以我会把它放在hooks文件夹中,确保它设置为可执行文件权限(755可以):

用你的域名替换“域\到\设置\为\例外”,例如myhost.example.com-我不喜欢在你需要之前将所有域设置为打开状态,因此建议使用白名单方法

然后,为了启动该命令,我在iOS平台部分修改config.xml,如下所示:

    ...
<platform name="ios">
    <hook type="before_build" src="hooks/ios_ats.sh" />
    ...
。。。
...

我在Github上写了一个完整的示例项目,展示了这一点,链接自文章,您可以从中获得适当的脚本。

最简单的解决方案可能是使用插件。看看

您可以在plugin.xml文件中看到它如何修改plist值

<platform name="ios">
  <config-file target="*-Info.plist" parent="NSAppTransportSecurity">
      <dict>
          <key>NSAllowsArbitraryLoads</key>
          <true/>
      </dict>
  </config-file>
</platform>

NSAllowsArbitraryLoads
引用此选项时,应添加

<access origin='*' allows-arbitrary-loads-in-media='true' allows-arbitrary-loads-in-web-content='true' allows-local-networking='true' />


您可以直接使用
config.xml
中的
edit config
标记来更新app Info.plist文件中的属性

这与类似,但允许对应用程序的配置进行更全面的控制

对于这种特殊情况,您可以包括以下内容(毫不奇怪,将
${APP_NAME}
替换为您的应用程序名称):


NSAllowsArbitraryLoads

检查这个答案:它不是应该在电话上运行吗(不是服务器)?是的,它在电话上。使用钩子脚本在脚本化的cordova build命令期间进行设置。这里没有服务器配置,不确定是什么让您认为有。
cordova plugin add cordova-plugin-transport-security --save
<platform name="ios">
  <config-file target="*-Info.plist" parent="NSAppTransportSecurity">
      <dict>
          <key>NSAllowsArbitraryLoads</key>
          <true/>
      </dict>
  </config-file>
</platform>
<access origin='*' allows-arbitrary-loads-in-media='true' allows-arbitrary-loads-in-web-content='true' allows-local-networking='true' />