WKWebView 渲染出现白屏的可能因素

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

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

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

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

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

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


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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值