webview崩溃不会crash而是会白屏
在UIWebview中,进行了对性能影响过大的操作(例如图片特别的多,然后突然改变了css、调整页面字体,导致重绘;连续点击打开多个webview),App会crash,但是WKWebview的现象是页面白屏。
解决方案: IOS有方案 待补充-
iOS 11.2 (15C114)图片缓存问题
(1) 发送网络请求表现不同
其余系统版本,在app未进入后台状态,同一个webview中加载多次同一个url,网络中只会发出一次请求。 11.2系统中,每次都会发出请求,命中缓存304
但是在断网后,再次发出请求,会直接加载失败
对于其他系统,断网后再次替换,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 11.2(15C114)且断网且某些特定的url 无法读取缓存
总结:
特定系统ios 11.2(15C114) 且 特定某些url(例如.sina.com.cn,应该是响应头某些设置影响),在断网情况下,无法加载已缓存过的图片。个人理解为 系统的bug。
- 动画执行问题
图片加载完成有一个动画,如下
@-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;
}