flutter

Flutter webView 获取HTML实际高度 (InAp

2021-11-09  本文已影响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]; 
});
上一篇下一篇

猜你喜欢

热点阅读