本文介绍: WKWebView 继 UIWebView 之后的 Web 组件,拥有更佳的渲染效率,加载更快内存占用也更低,但渲染页面时候可能出现白屏的情况.UIWebView 遇到占用内存较高的情况下会导致 App Processcrash;WKWebView 遇到占用内存较高的情况下会导致 WebContentProcesscrash;两者总体内存占用情况相差并不太多,不过 WKWebView 将其一部分内存的消耗通过进程方式拆解执行;可以基于 WKWebView 这项 webViewWe

WKWebView 继 UIWebView 之后的 Web 组件,拥有更佳的渲染效率,加载更快内存占用也更低,但渲染页面的时候可能出现白屏的情况.
UIWebView 遇到占用内存较高的情况下会导致 App Processcrash;
WKWebView 遇到占用内存较高的情况下会导致 WebContentProcesscrash;
两者总体内存占用情况相差并不太多,不过 WKWebView 将其一部分内存的消耗通过进程的方式拆解执行;

可以基于 WKWebView 这项 webViewWebContentProcessDidTerminate 的代理方法进行白屏处理,当其整体内存占用较大即将出现白屏的情况下调用方法执行重新加载操作.此时的 URL 还未被置为 nil,而白屏后则会丢失其 URL.

- (void)webViewWebContentProcessDidTerminate:(WKWebView *)webView {  // 内存消耗较大导致当前加载webView 出现白屏状况
    [webView reload]; // 刷刷刷它的
}

除此之外还遇到了同样存在白屏可能的情况,初始化 WKWebView 时未预先设置与JS的通信协议,具体如下

[wkConfig.userContentController addScriptMessageHandler:self name:@"WebCallApp"];

目前开发中暂时遇到了这两种可能性会导致白屏的情况出现,可供大家参考排查.


以上便是此次分享的全部内容,希望能对大家有所帮助!

原文地址:https://blog.csdn.net/survivorsfyh/article/details/124960789

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_38740.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注