IOS WKWebview踩坑记录

  1. webview崩溃不会crash而是会白屏
    在UIWebview中,进行了对性能影响过大的操作(例如图片特别的多,然后突然改变了css、调整页面字体,导致重绘;连续点击打开多个webview),App会crash,但是WKWebview的现象是页面白屏。
    解决方案: IOS有方案 待补充

  2. iOS 11.2 (15C114)图片缓存问题
    (1) 发送网络请求表现不同
    其余系统版本,在app未进入后台状态,同一个webview中加载多次同一个url,网络中只会发出一次请求。 11.2系统中,每次都会发出请求,命中缓存304

    IOS WKWebview踩坑记录_第1张图片
    命中缓存

    但是在断网后,再次发出请求,会直接加载失败
    IOS WKWebview踩坑记录_第2张图片
    加载失败

对于其他系统,断网后再次替换,network中也抓不到请求,直接命中缓存,显示图片。
(2) 与图片url也有关
有问题图片连接:
http://d9.sina.com.cn/pfpghc2/201712/20/68b14bec66d44684b018b7485cd0078e.gif
无问题图片连接:
http://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1516631762342&di=70a8ad865c360be8565e26c118ea246f&imgtype=0&src=http%3A%2F%2Fp0.ifengimg.com%2Fpmop%2F2017%2F0501%2F0C5501DB3FB16AEBA73DFC9BE711C58E1A690475_size599_w500_h267.gif

为了忽略图片大小和后缀名(这个不上地址了)的影响,上传无问题图片连接到内网地址
http://wap_front.dev.sina.cn/zihao/Test/timg.gif
一样存在每次都发起请求的问题
(3) 其他现象
在app进入后台,热启,切换已加载过的图片,可以从磁盘中读取缓存

IOS WKWebview踩坑记录_第3张图片
磁盘中读取缓存

ios 11.2(15C114)且断网且某些特定的url 无法读取缓存

总结:
特定系统ios 11.2(15C114) 且 特定某些url(例如.sina.com.cn,应该是响应头某些设置影响),在断网情况下,无法加载已缓存过的图片。个人理解为 系统的bug。

  1. 动画执行问题
    图片加载完成有一个动画,如下
@-webkit-keyframes rightShow {
    0% {opacity:0;}
    100% {opacity:1;}
}
@-moz-keyframes rightShow {
    0% {opacity:0;}
    100% {opacity:1;}
}

.imgLoad{
    animation: rightShow 300ms linear;
    -webkit-animation: rightShow 300ms linear;
    -moz-animation: rightShow 300ms linear;
}

在执行动画的过程中发生页面跳转(新起一个webview,前一个webview被挂起),动画大概率偶现停留在了初始状态,隐藏状态,不可见。不懂IOS开发,猜测是animation被中断后执行的问题,切换为transition动画后避免了这个问题。

.poster_img{
    opacity: 0;     
    transition: opacity 300ms;
    -moz-transition: opacity 300ms; 
    -webkit-transition: opacity 300ms;
    -o-transition: opacity 300ms;
}

.imgLoadTransition{
    opacity: 1;
}

你可能感兴趣的:(IOS WKWebview踩坑记录)