Angularjs 无法加载图像cordova-ios 9

Angularjs 无法加载图像cordova-ios 9,angularjs,image,cordova,cross-platform,ios9,Angularjs,Image,Cordova,Cross Platform,Ios9,这真是一个奇怪的问题,到目前为止一切都在运行,但当我们试图将跨平台应用程序构建到具有ios 9的iphone 5s中时,图像不仅会出现,从api加载到img src的图像也不会工作,特别是每当我尝试调用以下代码时 <img ng-if="eachItem.Image.length > 0" src="https://<name hidden>.s3.amazonaws.com/images/{{eachItem.Image}}" fallback-src="images

这真是一个奇怪的问题,到目前为止一切都在运行,但当我们试图将跨平台应用程序构建到具有ios 9的iphone 5s中时,图像不仅会出现,从api加载到img src的图像也不会工作,特别是每当我尝试调用以下代码时

<img ng-if="eachItem.Image.length > 0" 
src="https://<name hidden>.s3.amazonaws.com/images/{{eachItem.Image}}"
fallback-src="images/no_foto.jpg" alt="" class="spac-bdr">
.s3.amazonaws.com/images/{{{eachItem.Image}”
回退src=“images/no_foto.jpg”alt=”“class=“spac bdr”>
但有趣的是,在ios 8中,一切都运行良好。所有的API都运行良好。只是图像无法加载

但对于使用相同代码构建的android应用程序来说,并没有这样的问题。它似乎只会影响到在拥有ios 9操作系统的设备上运行的应用程序


你知道如何克服这个问题吗?

我想在尝试从不同的服务器访问图像时出现了一些问题。虽然API指向不同的服务器,但以下添加到plist的内容帮助我解决了这个问题

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>
NSAppTransportSecurity
NSAllowsArbitraryLoads

我认为尝试从不同的服务器访问图像时出现了一些问题。尽管API指向了不同的服务器。以下添加到plist的内容帮助我解决了问题

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>
NSAppTransportSecurity
NSAllowsArbitraryLoads

正如我在@Kailas的回答下所评论的那样,他发布的方式不是推荐的方式。请阅读此文的所有人:考虑一下应用程序的安全性!

尽管我已经告诉了iOS9Ajax/ATS问题并将我的详细答案与之联系起来,但出于完整性考虑,我将在这里做一个完整的引用

因此,请完整引用以下内容: 就我对整个ATS(应用程序传输安全-iOS 9)的理解而言,28区推荐的方法不应该是您在应用程序中使用的方法

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key><true/>
</dict>
这将只允许对您指定的域进行请求。所描述的方式是apple使用的方式。正如您在屏幕截图上看到的,这是apple希望用户使用它的方式

如果您没有指定任何内容,您将获得

无法加载网页,错误为:无法加载资源 因为应用程序传输安全策略要求使用安全的 连接

所以,像我说的那样改变它,错误就消失了。

正如我在@Kailas的回答中所评论的那样,他发布的方式不是推荐的方式。请阅读本文的所有人:考虑一下应用程序的安全性!

尽管我已经告诉了iOS9Ajax/ATS问题并将我的详细答案与之联系起来,但出于完整性考虑,我将在这里做一个完整的引用

因此,请完整引用以下内容: 就我对整个ATS(应用程序传输安全-iOS 9)的理解而言,28区推荐的方法不应该是您在应用程序中使用的方法

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key><true/>
</dict>
这将只允许对您指定的域进行请求。所描述的方式是apple使用的方式。正如您在屏幕截图上看到的,这是apple希望用户使用它的方式

如果您没有指定任何内容,您将获得

无法加载网页,错误为:无法加载资源 因为应用程序传输安全策略要求使用安全的 连接

所以,像我说的那样改变它,错误就消失了。

确保config.xml文件中的路径原点具有提取图像所需的域(例如,我的图像是从AWS S3提供的,因此我需要下面这一行)


在从xCode构建之前,我将其添加到.plist文件中,从而解决了我的问题

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key><true/>
</dict>
NSAppTransportSecurity
NSAllowsArbitraryLoads

确保config.xml文件中的路径原点具有提取图像所需的域(例如,我的图像是从AWS S3提供的,因此我需要下面这一行)


在从xCode构建之前,我将其添加到.plist文件中,从而解决了我的问题

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key><true/>
</dict>
NSAppTransportSecurity
NSAllowsArbitraryLoads

如果使用cordova cli,则必须手动更改
config.xml
plugin.xml
info.plist
文件。从
platforms/ios/ios.json
文件中删除配置。这将在每次cordova构建中重建以前的所有文件。 我在从graph api加载图像时遇到问题,因此我将其从ios.json文件中删除

{
   "xml": "<access origin=\"https://graph.facebook.com\" />",
   "count": 1
}
{
“xml”:“,
“计数”:1
}

如果使用cordova cli,则必须手动更改
config.xml
plugin.xml
info.plist
文件。从
platforms/ios/ios.json
文件中删除配置。这将在每次cordova构建中重建以前的所有文件。 我在从graph api加载图像时遇到问题,因此我将其从ios.json文件中删除

{
   "xml": "<access origin=\"https://graph.facebook.com\" />",
   "count": 1
}
{
“xml”:“,
“计数”:1
}

Inspect Element怎么说?有控制台错误吗?我们可以检查Element吗?这是一个应用程序,对吗?对于web版本,我们可以这样做。此外,它在web版本上运行平稳。至少在Chrome中,你可以在安卓和iOS上使用。Inspect Element怎么说?有控制台错误吗?我们可以检查Element吗?这是一个应用程序,对吗?对于网络版,我们可以这样做。除此之外,它在网络版上运行平稳。至少在Chrome中,你可以在Android和iOS上使用。正如我已经在这里详细介绍的->你描述的方式不是应该使用的方式。我不知道为什么每个人都认为“哦,嘿,我只允许每个网络请求。”“-你对安全的想法在哪里?正如我在这里已经非常详细地告诉你的->你描述的方式不是人们应该使用的方式。我不知道为什么每个人都认为“哦,嘿,我只允许每个网络请求”-你的安全想法在哪里?谢谢你的好指导。我会详细研究这个问题。我们需要使用