关于使用http图片加载失败的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于使用http图片加载失败的问题相关的知识,希望对你有一定的参考价值。
参考技术A 这个事情呢,说要从苹果要求https 安全链结开始,由于测试的时候是在本地服务端 经理要求使用http测试,于是关闭了https 的验证,测试的时候请求数据和网络图片加载都是使用的http链接,正常。app开发完成 必须要支持https才能发布,审核才会通过撒,于是迁移到正式服务端的时候,服务端给出的请求数据的链接为https ,而加载展示图片的链接为http。给出的理由是如果图片和视频加载需要https验证的话,太耗费流量了,所以图片和视频使用http 加载,好吧。配置参考。https://www.jianshu.com/p/85cfbccab33b
如图 :为测试服务器 使用的加载数据和加载图片都是使用的http 请求时的配置
App Transport Security Settings Dictionary
Allow Arbitrary Loads Boolean YES
Allow Arbitrary Loads in Web Content Boolean YES
这种配置呢!1.请求数据和加载图片,都使用用http。正常。 2.请求数据和加载图片都使用https 正常。3,如果请求数据使用https 加载图片使用http 控制台会打印一条消息:App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.意思大概就是http不能用啦
首先测试的时候 请求数据加载图片全部是http 正常 ,然后请求数据https和加载从网络上找加载https 的图片也是正常的,但是请求数据使用https 加载图片使用http 报安全链接的错误。然后将服务端的图片链接放到浏览器上,正常显示,所以排出图片错误的可能,初步定为安全链接权限的问题。查找网上资料显示同样的配置。而我的工程里面关闭权限验证的时候 多了一个。Allow Arbitrary Loads in Web Content 。将这个key 删除后
运行加载图片,正常。然而这个是为什么呢?
资料链接(感谢作者分享):http://blog.csdn.net/u012947646/article/details/51915985
当 NSAllowsArbitraryLoads 和 NSAllowsArbitraryLoadsInWebContent 同时存在时,根据系统不同,表现的行为也会不一样。简单说,ios 9 只看 NSAllowsArbitraryLoads,而 iOS 10 会先看 NSAllowsArbitraryLoadsInWebContent。在 iOS 10 中,要是 NSAllowsArbitraryLoadsInWebContent 存在的话,就忽略掉 NSAllowsArbitraryLoads,如果它不存在,则遵循 NSAllowsArbitraryLoads 的设定。说起来可能有点复杂,我在这里总结了一下根据 NSAppTransportSecurity 中设定条件不同,所对应的系统版本和请求组件的行为的不同,可以作为你设置这个字典时的参考。
以上是关于关于使用http图片加载失败的问题的主要内容,如果未能解决你的问题,请参考以下文章
关于SpringMvc中js和图片路径正确但是不能加载的问题
Android关于Glide的使用(高斯模糊加载监听圆角图片)