美文网首页
WKWebView白屏原因的坑

WKWebView白屏原因的坑

作者: JackSteven | 来源:发表于2019-07-24 13:54 被阅读0次

错误日志:

Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service

白屏场景:

第一:使用WKWebView调用H5微信支付;

第二:这样要呼起微信,在微信支付界面,点击取消支付;

第三:这个时候回到WKWebView的h5界面,刷新结果页面,此页面有重新支付按钮,

第四:多次重复前面步骤,出现了白屏,日志出现了上述错误,通过对比发现WKCompositingView不见了;前后台切换后,界面又能正常显示出来,很是奇怪,如下图:左边是白屏,右边是正常。

注意:多次呼起第三方微信App出现的现象,在App多次打开多个H5页面暂未发现白屏现象;


解决方案

在viewDidAppear回调进行遍历WKWebView的subviews,查找WKCompositingView是否存在来判断是否白屏;出现白屏可以关闭页面或者重新构造WKWebView页面,经过测试reload,loadRequest没有效果;

- (void)viewDidAppear:(BOOL)animated

{

    [super viewDidAppear:animated];

    BOOL isblank = [self isBlankView:self.webView];

    if (isblank)

        {

            [self performSelector:@selector(dismissViewController) withObject:nil afterDelay:0.1];

        }

}

- (void)dismissViewController
{
    [self.navigationController popViewControllerAnimated:YES];
}


/*
 * 判断是否白屏(WKCompositingView不存在)
 * YES:blank
 */
- (BOOL)isBlankView:(UIView*)view
{
    //NSLog(@"root:%@", NSStringFromClass(view.class));
    Class wkCompositingView = NSClassFromString(@"WKCompositingView");
    if ([view isKindOfClass:[wkCompositingView class]])
    {
        return NO;
    }
    for (UIView *subView in view.subviews)
    {
        //NSLog(@"child:%@", NSStringFromClass(subView.class));
        if (![self isBlankView:subView])
        {
            return NO;
        }
    }
    return YES;
}

相关文章

  • WKWebView白屏原因的坑

    错误日志: Could not signal service com.apple.WebKit.WebConten...

  • WKWebView白屏原因及其解决方案

    白屏场景 加载到WKWebView页面后,前/后台来回切换APP。 白屏原因 WKWebView是一个多进程组件,...

  • WKWebView白屏之坑

    问题 最近项目中使用了WKWebView展示echarts图表。起初效果很好,但是长时间测试后发现,WKWebVi...

  • WKWebview 白屏

    WKWebview页面突然白屏问题 页面突然白屏可能是由于加载资源过大,内存不足,导致webview的进程被程序终...

  • WKWebView 白屏

    项目中遇到的问题 第一种:URL中出现特殊字符 '=' 等,需要编码let url = URL(string: s...

  • WKWebView的 开发坑

    1、WKWebView 白屏问题WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebV...

  • WKWebView的 开发坑

    1、WKWebView 白屏问题WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebV...

  • WKWebView那些坑

    1、WKWebView白屏问题 WKWebView自诩拥有更快的加载速度,更低的内存占用,但实际上WKWebVie...

  • UITableView嵌套WKWebView的那些坑

    UITableView嵌套WKWebView的那些坑 UITableView嵌套WKWebView的那些坑

  • WKWebView开发中遇到的坑

    1.WKWebView白屏问题 WKWebView自我拥有更快的加载速度,更低的内存占用,但实际上WKWebVie...

网友评论

      本文标题:WKWebView白屏原因的坑

      本文链接:https://www.haomeiwen.com/subject/ftlxrctx.html