67 lines
1.6 KiB
Dart
67 lines
1.6 KiB
Dart
import 'dart:html';
|
|
import 'dart:ui' as ui;
|
|
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
class WebView extends StatefulWidget {
|
|
WebView({required this.htmlText});
|
|
|
|
final String htmlText;
|
|
|
|
@override
|
|
_WebViewWidget createState() => _WebViewWidget();
|
|
}
|
|
|
|
class _WebViewWidget extends State<WebView> {
|
|
final IFrameElement _iframeElement = IFrameElement();
|
|
|
|
@override
|
|
void initState() {
|
|
|
|
if(kIsWeb) {
|
|
_iframeElement.src = "https://mymuseum.be";
|
|
_iframeElement.style.border = 'none';
|
|
_iframeElement.style.width = '100%';
|
|
_iframeElement.style.height = '100%';
|
|
|
|
_iframeElement.innerHtml = widget.htmlText;
|
|
|
|
document.body!.innerHtml = widget.htmlText;
|
|
//document.title = "Privacy Policy";
|
|
//document.body. = widget.htmlText;
|
|
|
|
|
|
_iframeElement.onLoad.listen((event) {
|
|
// Send message to iframe when loaded
|
|
_iframeElement.innerHtml = widget.htmlText;
|
|
});
|
|
|
|
//ignore: undefined_prefixed_name
|
|
ui.platformViewRegistry.registerViewFactory(
|
|
widget.htmlText, //use source as registered key to ensure uniqueness
|
|
(int viewId) => _iframeElement,
|
|
);
|
|
}
|
|
|
|
super.initState();
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
//_webView = null;
|
|
super.dispose();
|
|
}
|
|
|
|
|
|
@override
|
|
Widget build(BuildContext context) => widget.htmlText.length > 0 ?
|
|
kIsWeb ?
|
|
HtmlElementView(
|
|
key: UniqueKey(),
|
|
viewType: widget.htmlText,
|
|
) :
|
|
//WebViewWidget(controller: controller!)
|
|
Text("Texte"):
|
|
Center(child: Text("La page internet ne peut pas être affichée, l'url est incorrecte ou vide"));
|
|
} //_webView |