我是靠谱客的博主 超帅裙子,最近开发中收集的这篇文章主要介绍WKWebView白屏问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

WKWebView白屏问题

WKWebView自诩拥有更多的加载速度,更低的内存占用,但实际上WKWebView是一个多进程组件,Network Loading以及UI Rendering在其他进程中执行。初次适配WKWebView的时候,我们也惊讶于打开WebView后,app进程内存消耗反而大幅下降,但是仔细观察会发现,orther process的内存占用会增加。在一些用webGL渲染的复杂页面,使用WKWebView总体的内存占用(app process memory + other process memory)不见得比UIWebView少很多,在UIWebView上内存占用比较大的时候,webContent process 会 crash,从而出现白屏现象。

解决方案:

1.借助WKNavigtionDelegate

ios9之后WKNavigtionDelegate新增了一个回调函数:

/*! @abstract Invoked when the web view's web content process is terminated.
@param webView The web view whose underlying web content process was terminated.
*/
- (void)webViewWebContentProcessDidTerminate:(WKWebView *)webView API_AVAILABLE(macos(10.11), ios(9.0));

在回调函数中重新reload webView即可。

2.检测webView.title是否为空

并不是所有页面白屏都会调用这个回调函数(比如 webContent process被系统挂起),在WKWebView白屏的时候,另一种现象是webView.title会被置空,因此可以通过监听webView的title属性来检测。

最后

以上就是超帅裙子为你收集整理的WKWebView白屏问题的全部内容,希望文章能够帮你解决WKWebView白屏问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部