wkwebview白屏

Posted 博BOBO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wkwebview白屏相关的知识,希望对你有一定的参考价值。

解决方案

在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白屏的主要内容,如果未能解决你的问题,请参考以下文章

WKWebView 那些坑

WKWebView 那些坑

iOS WKWebView 那些坑

WKWebView 实例可以在加载时显示网页吗?

IOS webview iframe 引入第三方页面白屏

小程序 webview 部分用户打开后白屏