网上找了很多文章,都是 获取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];
});
网友评论