美文网首页iOS开发技术讨论swift编程开发程序员
WKWebView使用注意事项(cell内嵌)

WKWebView使用注意事项(cell内嵌)

作者: 栈溢出 | 来源:发表于2016-05-09 17:49 被阅读2588次

    cell内嵌WKWebView时,有部分人通过代理中页面加载完成后调用的这个方法,如下

    // 页面加载完成之后调用

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

    //    CGFloat scrollHeight = webView.scrollView.contentSize.height;

    }

    来获取wkwebview的内容高度来设置cell高度。往往发现返回的高度不对。

    通过kvo观察这个webView.scrollView.contentSize,你会发现上面的代理执行的方法返回的WKWebView的content并没有被修改。

    所以就不要和uiwebview一样用这个方法了。

    直接从JS里拿吧~

    [webView evaluateJavaScript:@"document.body.offsetHeight;"completionHandler:^(id _Nullable result,NSError *_Nullable error) {

    //获取页面高度,并重置webview的frame

    }];

    还有一点需要注意:最好等到webview加载完成在内嵌cell。不然坑好多~

    相关文章

      网友评论

      • 夜央未尽:这个方法还是不灵光 还在找
        张三疯疯子:找到没
      • zuolingfeng:赞,解决了我的大问题。就是调用evaluateJavaScript:@"document.body.offsetHeight;"
        方法需要放到didFinishNavigation里面。
      • 给你快乐:赞,现在就在做这个,但是加载出来的图片大小怎么改变呢?楼主有没有解决办法?要图片大小适应屏幕
        兔_小白:创建WKWebView时,添加一下代码
        // 自适应屏幕宽度js
        NSString *jSString = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);";

        WKUserScript *wkUserScript = [[WKUserScript alloc] initWithSource:jSString injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
        WKUserContentController *userContentController = [[WKUserContentController alloc] init];

        [userContentController addUserScript:wkUserScript];

        在加载HTML的时候添加一下代码
        // 手动改变图片适配问题,拼接html代码后,再加载html代码
        NSString *myStr = [NSString stringWithFormat:@"<head><style>img{max-width:%f !important;}</style></head>", SCREEN_WIDTH - 20];
        NSString *str = [NSString stringWithFormat:@"%@%@",myStr, html5代码字符串];
        [self.informationWebView loadHTMLString:str baseURL:nil];
        栈溢出:@给你快乐
        你问下你们前端,前端知道的。

      本文标题:WKWebView使用注意事项(cell内嵌)

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