版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.08.16 |
前言
做了好几个APP,碰到了大大小小的很多坑,以前碰到坑,解决了就结束了,这里想把自己碰到的坑记录下来,一来给自己备查二来希望可以帮助到大家。感兴趣的可以关注下,也欢迎大家补充留言,感兴趣的看上面几篇文章。
1. 我的代码我的坑(一) —— 自签名证书导致请求取消的问题(一)
2. 我的代码我的坑(二) —— UIImageView动画点击后动画和图片消失的问题(一)
问题描述
最近对项目中的webview框架进行了更改,由原先的UIWebView更改为后来的WKWebview,但是在测试的时候发现,对于iOS 9.0的系统加载出来就是一个白板,但是对于iOS11系统来说就是正常的。如下所示:
而且,即使我将H5地址放在iOS 9.0系统机器的Safari中也是没办法打开的。
问题解决
首先我就检查了下,看是不是我用了iOS 9.0限制的方法,但是没有找到,我用的都是9.0之前就已经有的方法了。
然后我打断点,下面的代理方法也返回了,说明了一个问题,我得到了这个数据,只是没有展示出来而已。
// 页面加载完成之后调用
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation;
然后,我就是上网查找答案,有很多人遇到这个问题,通过添加info.plist的key-value解决的。
//修改info.plist文件
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
但是上面这个方案其实是为了解决下面这个报错采用的。
Application 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.
但是,这个key其实我们项目中早就加过了,并且没有这个报错,所以这个方法并不是我的问题的答案。
后来,我接着去尝试来排除各种因素的影响,当我在webview里面加载页面的url写死为百度的时候,如下:
urlString = @"https://www.baidu.com";
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[self.webView loadRequest:request];
这样项目内的任何H5页面都会链接到百度,run起来以后发现,加载百度是成功的,这就说明了不是我们客户端的问题,而是H5加载渲染页面的问题。
后来找来前端的人员看了一下,证明了我的猜想是正确的,前端使用了node-jsonp
插件,导致了在iOS 9.0系统上没有办法渲染出来页面。所以后来前端移除了这个插件,客户端就顺利的显示出来了。
后记
本篇讲述了iOS9系统WKWebview加载页面白板的问题,感兴趣的给个赞或者关注~~~
网友评论