美文网首页flutter
Flutter webView 获取HTML实际高度 (InAp

Flutter webView 获取HTML实际高度 (InAp

作者: 卢融霜 | 来源:发表于2021-11-09 10:33 被阅读0次

    网上找了很多文章,都是 获取HTML高度,或者 getContentHeight() 返回的高度,直接赋值给 Container 的高度,但是都忘记了 * 缩放系数,记录一下。

    InAppWebView

      flutter_inappwebview: ^5.3.2
    

    获取高度代码

    //在onLoadStop  中调用
      int? contentHeight = await _controller?.getContentHeight();
      double? zoomScale = await _controller?.getZoomScale();
      double htmlHeight = contentHeight!.toDouble() * zoomScale!;
      double htmlHeightFixed =
      double.parse(htmlHeight.toStringAsFixed(2));
       if (htmlHeightFixed == 0.0) {
            return;
       }
      setState(() {
            _htmlHeight = htmlHeightFixed + 0.1;
       });
    
    

    高度参数和缩放系数,也可以 通过evaluateJavascript获取:

    //获取HTML高度 和 设备像素比
     controller.evaluateJavascript(source: """
                window.flutter_inappwebview.callHandler('InAppWebView',document.querySelector("html").offsetHeight,window.devicePixelRatio).then(function(result) {
         console.log(result);
       });
            """);
    //监听调用返回
    controller.addJavaScriptHandler(
            handlerName: "InAppWebView",
            callback: (_arguments) async {
            // _arguments  是   [1131,4.0]; 
    });
    

    相关文章

      网友评论

        本文标题:Flutter webView 获取HTML实际高度 (InAp

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