美文网首页BUG疑难杂症
WKWebView使用KVO监听contentSize的异常闪退

WKWebView使用KVO监听contentSize的异常闪退

作者: 猜火车丶 | 来源:发表于2018-08-01 00:24 被阅读203次

    因为使用下面的方法会出现内容先加载出来,高度有延迟调整的情况,不符合要求

    - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation;
    

    所以采用了KVO去监听WKWebView的scrollView的contentSize属性,来改变WKWebView的高度,但是加载中会出现异常闪退的情况,并且页面会出现异常高度计算,出现非常长的留白,后来在判断后面增加了_wkWebView.loading,目前计算及闪退的异常都没有出现。
    于是在此做一个简单的记录,也想吐槽下网上大部分互相抄来抄去的博客真的很耽误事啊。

        [self.wkWebView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:@"WebKitContext"];
    
    
    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    
        if ([keyPath isEqualToString:@"contentSize"] && _wkWebView.loading) {
    
            [_wkWebView evaluateJavaScript:SF(@"document.documentElement.offsetHeight") completionHandler:^(id _Nullable result, NSError * _Nullable error) {
               //操作
            }];
        }
    }
    
    - (void)dealloc{
        [self.wkWebView.scrollView removeObserver:self forKeyPath:@"contentSize" context:@"WebKitContext"];
    }
    

    相关文章

      网友评论

        本文标题:WKWebView使用KVO监听contentSize的异常闪退

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