iOS - webView加载https

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS - webView加载https相关的知识,希望对你有一定的参考价值。

参考技术A APP项目中,嵌入了几个h5页面,页面中包含了使用【WebViewjavascriptBridge】与h5页面的交互,之前一切正常。
最近,项目的h5页面经过了SSL证书加密,变成了https请求,页面中数据不能正常加载了。页面布局可以正常展示,数据请求失败,如下:

加密之后,ios及安卓都出现了上述问题,安卓端经过处理后,可以正常展示(询问过后,是安卓端在webView页面做了允许http及https混合加载处理,便可正常展示了)

由于安卓端处理好了,我这边便以为是iOS端内部的问题,于是开始在网上搜索【UIWebView/WKWebView加载https】的相关文章。

网上给出了很多种解决方法,针对的问题大多都是【由于服务器证书无效,即证书不受信任】,几种解决问题的方法如下:

使用此方法后,问题未解决,继续找...

解决方法:

使用上述方法,问题未解决,继续...

依然未解决,继续...

创建AFHTTPSessionManager的类别:

依然,无效...

1.经过多种方法尝试,依然未解决问题,只好在QQ群中求助。
大神果然是大神,一语中的:

2.在网上看到一篇文章,发给后端看:

于是后端改了请求头,但...依然不行

3.通过在Safari浏览器中调试后,终于发现了问题所在:
(如何在浏览器中向h5页面传参,下篇见)

4.把报错信息及发给后端看,发现是h5页面中的接口,是http而非https,于是后端做了修改,接口改为https,又出现如下错误:

5.接口改为https后,依然不行,在浏览器中打开接口链接,提示证书无效:

经后端的一顿操作后,证书可以了,但依然报请求头的问题,效果如下:

6.还记得在刚开始的时候,后端修改请求头的事情吗?
没错,就是那个导致了现在的局面,待后端把请求头改回去后,完美解决:

忙活了一周,结果发现是后端的问题,好在最终完美解决了~

以上是关于iOS - webView加载https的主要内容,如果未能解决你的问题,请参考以下文章

Webview中的iOS静态图像加载

iOS中的webView加载HTML

WebView 在 iOS 9 中不加载非标准端口

iOS Swift Webview 在加载时显示图像

ios开发之--给WebView加载进度条

Flutter 与 iOS 原生 webView 对比