iOS中Http和Https共存

苹果在 iOS 9 中引入了应用传输安全功能,它默认需要所有的应用使用 HTTPS 协议。由于不是所有的服务都由 HTTPS 提供,因此苹果还提供了一个禁用 ATS 的方式,既可选择性的使用也可全局应用。
如果您的应用需要能够加载所有的 URL(比如说在 UIWebview中),那么您可能需要通过设置NSAllowsArbitraryLoads键值为YES来全局禁用 ATS。这完全是可以的,但是一旦您全局禁用了 ATS 功能,那么您需要在重要区域启用ATS 服务。您需要使用NSExceptionDomains键来完成此项功能。比如说,这是 Workflow 的 Info.plist 文件的一部分内容:

20150915195017_478.png

您可以看到,我们支持用户通过 HTTP 下载文件,但是我们同样也支持通过 HTTPS 来连接 workflow.is(以及所有 Workflow 使用的 API )。
还需要注意的是,每一个包都需要应用 ATS 功能。这意味着您不仅需要给您主应用的 Info.plist 文件添加 ATS 字典,而且还要同时给扩展的 Info.plist 文件添加。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,987评论 19 139
  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 4,536评论 0 12
  • 很可能你的应用是与一个支持HTTPS传输数据的服务器交互,但是并没有使用TLS 1.2或更高。在这种情况下,你定义...
    Www刘阅读 3,142评论 0 5
  • 2013-12-31 22:19 2013过去了,我也已经过了30岁。都说三十而立,我的而立之年,却不太平静,生活...
    齐言楚羽阅读 1,313评论 0 7
  • 笑话送给朋友,祝您每天开心快乐! 1.一厂长喝多回家错进猪圈,躺在母猪身边说:老婆:给我倒杯水,母猪哼了一哼,村长...