import 'dart:convert'; import 'package:flutter/cupertino.dart'; import 'package:hiddingsel_app/services/environment.dart'; import 'package:webview_flutter/webview_flutter.dart'; class HtmlView extends StatefulWidget { final String _html; final String html; HtmlView(this.html) : _html = Uri.dataFromString(html, mimeType: 'text/html', encoding: utf8) .toString(); @override State createState() => _HtmlViewState(); } class _HtmlViewState extends State { double? _height; @override Widget build(BuildContext context) { WebViewController wbController = WebViewController() ..enableZoom(true) ..setJavaScriptMode(JavaScriptMode.unrestricted); wbController.setNavigationDelegate( NavigationDelegate( onPageFinished: (String) async { if (_height == null) { var heightString = (await wbController .runJavaScriptReturningResult( 'document.documentElement.scrollHeight;')); setState(() { _height = double.parse(heightString.toString()); }); } } ), ); wbController.loadHtmlString(widget.html); return SizedBox( height: _height ?? 1, child: WebViewWidget( controller: wbController, ), ); } }