iOS开发中webview加载https

                WebView加载HTTPS       

     由于后台服务器接口都换成了https,所以在项目中请求数据也用了AFN的session类,但是突然发现一个问题,数据倒是请求到了,但是某些链接加载到webview的时候一片空白! 今天花了一上午的时间,做了个demo,希望能帮助到各位,下面是代码部分;

例 :如果你想加载:https://www.baidu.com可能会报错(NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)),因为webview默认是不加载https之类的请求链接,我在网上看了半天,终于找到了相应的解决方法,直接来代码清晰点;

   1. 首先请在info.plist添加如下信息,在iOS

         

   

开发者可以在App的Info.plist中添加NSAppTransportSecurity的相关配置,用以禁用ATS或者添加白名单,可用的配置参数如下:
  • NSAllowsArbitraryLoads - 设置true即支持所有HTTP请求
  • NSExceptionDomains - 添加白名单
  • NSExceptionMinimumTLSVersion - 白名单指定域名支持的TLS版本
  • NSExceptionRequiresForwardSecrecy - 白名单指定域名是否支持Forward Secrecy
  • NSExceptionAllowsInsecureHTTPLoads - 白名单指定域名禁用ATS
  • NSThirdPartyExceptionMinimumTLSVersion - 白名单指定第三方服务域名最低支持的TLS版本
  • NSThirdPartyExceptionRequiresForwardSecrecy - 白名单指定第三方服务域名是否支持Forward Secrecy
  • NSThirdPartyExceptionAllowsInsecureHTTPLoads - 白名单指定第三方域名禁用ATS
  •  NSAllowsArbitraryLoadsInWebContent - 允许任意web页面加载,同时苹果会用 ATS来保护你的app

在info.plist里面配置截图里面的信息就OK了。 这里的"baidu.com"的名称是需要在浏览器中查看你的证书,上面有个通用名称对应添加,千万别写错了! 这里的 TSLv1.0为毛不是1.2什么的,这相当于我们iOS程序最低运行版本是多少。

参考资料:http://stackoverflow.com/questions/30720813/cfnetwork-sslhandshake-failed-ios-9

猜你喜欢

转载自blog.csdn.net/whjay520/article/details/53742604