WKWebView/UIWebView与js的交互

286 阅读1分钟

WKWebView与js的交互

参考demo链接:github.com/SSiming/WKW…

UIWebView与js的交互

参考demo链接:github.com/Coolll/Test…

获取WKWebView的内容高度方法

注:"document.body.clientHeight"需H5定义

#pragma mark --navigation delegate
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
    self.title = webView.title;
    
    [self updateNavigationItems];
//    [self addActionObject];
    
    [self.webView evaluateJavaScript:@"document.body.clientHeight" completionHandler:^(id _Nullable result, NSError * _Nullable error) {
        NSNumber *heightNum = result;
        // 控制外部scrollview的滚动
        CGFloat wkContentHeight = heightNum.floatValue;
        if (wkContentHeight < CGRectGetHeight(self.webView.frame)) {
            self.scrollView.scrollEnabled = NO;
        } else {
            self.scrollView.scrollEnabled = YES;
            CGRect frame = self.webView.frame;
            frame.size.height = wkContentHeight;
            self.webView.frame = frame;
        }
        //    self.webView.scrollView.scrollEnabled = NO;
        self.scrollView.contentSize = CGSizeMake(webView.scrollView.contentSize.width, CGRectGetHeight(self.webView.frame) + CGRectGetHeight(self.backView.frame));
    }];
}