我知道之前已经讨论过,但似乎没有什么对我有用。我创建了一个新项目作为测试,并从两个来源添加了相同的图像。一个http和一个https,我只能显示https。我已经编辑了我的Info.plist文件并添加了。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
这是我的页面。
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:TestImage" x:Class="TestImage.TestImagePage">
<StackLayout>
<Image Source="https://www.closersharing.com/Images/Alarm.png"/>
<Image Source="http://newhorizonfellowship.com/wp-content/uploads/2018/05/Alarm.png"/>
</StackLayout>
</ContentPage>
我还将HTTPClient实现更改为NSURISession(iOS 7+)
我不知所措。
答案 0 :(得分:0)
请尝试以下密钥以允许所有连接。
<key>NSAppTransportSecurity</key>
<dict>
<!--Include to allow all connections (DANGER)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
&#13;
如果它不适合你,请告诉我。
答案 1 :(得分:0)
如果您的应用需要从非安全加载并显示网页内容 网站,将以下内容添加到您应用的Info.plist文件以允许网络 Apple Transport Security(ATS)正确加载页面 仍然为应用的其余部分启用了保护:
<key>NSAppTransportSecurity</key> <dict> <key> NSAllowsArbitraryLoadsInWebContent</key> <true/> </dict>
您可以选择对应用进行以下更改 Info.plist文件完全禁用所有域和互联网的ATS 通信强>:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
由于您的示例中没有网页,因此很可能您打算使用完全禁用ATS的第二个示例。在认真考虑第二个选项之前,我强烈建议您理解security risks。
除了您原来的问题之外,也许只是将应用程序与图像一起发布以避免这样的复杂化。如果你仍想下载图片,那么将它们缓存是有意义的,请检查FFImageLoader。