diff --git a/core/lib/presentation/views/html_viewer/html_content_viewer_widget.dart b/core/lib/presentation/views/html_viewer/html_content_viewer_widget.dart
index 924b6cccc..e39741626 100644
--- a/core/lib/presentation/views/html_viewer/html_content_viewer_widget.dart
+++ b/core/lib/presentation/views/html_viewer/html_content_viewer_widget.dart
@@ -1,4 +1,5 @@
import 'package:core/core.dart';
+import 'package:easy_web_view/easy_web_view.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
@@ -10,6 +11,7 @@ class HtmlContentViewer extends StatefulWidget {
final String contentHtml;
final int minHeight;
final double widthContent;
+ final double? heightContent;
final Widget? loadingWidget;
/// Register this callback if you want a reference to the [InAppWebViewController].
@@ -26,6 +28,7 @@ class HtmlContentViewer extends StatefulWidget {
Key? key,
required this.contentHtml,
required this.widthContent,
+ this.heightContent,
this.minHeight = 100,
this.loadingWidget,
this.onCreated,
@@ -99,18 +102,22 @@ class _HtmlContentViewState extends State {
@override
Widget build(BuildContext context) {
- _documentWidth = widget.widthContent;
- return Stack(
- alignment: AlignmentDirectional.center,
- children: [
- SizedBox(
- height: _documentHeight,
- width: _documentWidth,
- child: _buildWebView(),
- ),
- if (loading) _buildLoadingView()
- ],
- );
+ if (kIsWeb) {
+ return _buildWebViewOnBrowser();
+ } else {
+ _documentWidth = widget.widthContent;
+ return Stack(
+ alignment: AlignmentDirectional.center,
+ children: [
+ SizedBox(
+ height: _documentHeight,
+ width: _documentWidth,
+ child: _buildWebView(),
+ ),
+ if (loading) _buildLoadingView()
+ ],
+ );
+ }
}
Widget _buildLoadingView() {
@@ -126,6 +133,20 @@ class _HtmlContentViewState extends State {
}
}
+ Widget _buildWebViewOnBrowser() {
+ if (_initialPageContent == null || _initialPageContent?.isEmpty == true) {
+ return Container();
+ }
+ return EasyWebView(
+ key: ValueKey('WebViewOnBrowser'),
+ src: _initialPageContent!,
+ onLoaded: () => {},
+ isHtml: true,
+ webNavigationDelegate: (_) => WebNavigationDecision.prevent,
+ height: widget.heightContent,
+ );
+ }
+
Widget _buildWebView() {
if (_initialPageContent == null || _initialPageContent?.isEmpty == true) {
return Container();
diff --git a/lib/features/email/presentation/widgets/email_content_item_builder.dart b/lib/features/email/presentation/widgets/email_content_item_builder.dart
index c928e90bb..488c4ad39 100644
--- a/lib/features/email/presentation/widgets/email_content_item_builder.dart
+++ b/lib/features/email/presentation/widgets/email_content_item_builder.dart
@@ -34,6 +34,7 @@ class EmailContentItemBuilder {
case EmailContentType.textHtml:
return HtmlContentViewer(
widthContent: MediaQuery.of(_context).size.width,
+ heightContent: MediaQuery.of(_context).size.height,
contentHtml: _emailContent.content,
loadingWidget: loadingWidget,
mailtoDelegate: (uri) async {});