#flutter #flutter-web
Вопрос:
существует элемент IFrameElement, который показывает URL-адрес, когда пользователь нажимает на ввод внутри нашего элемента IFrameElement, клавиатура откроется, и после этого виджет внезапно будет перезагружен.
import 'package:anymeet/core/ui/fakeUi.dart' if (dart.library.html) 'package:anymeet/core/ui/realUi.dart' as ui;
import 'package:flutter/material.dart' hide Element;
import "package:universal_html/html.dart";
class WebViewWeb extends StatefulWidget {
final String url;
const WebViewWeb({Key key, this.url}) : super(key: key);
@override
_WebViewWebState createState() => _WebViewWebState();
}
class _WebViewWebState extends State<WebViewWeb> {
@override
void initState() {
ui.platformViewRegistry.registerViewFactory(
'html-view',
(int viewId) => IFrameElement()
..src = widget.url
..style.border = "0"
..attributes.addAll({"webkitallowfullscreen": "true", "mozallowfullscreen": "true"})
..allow = "camera *;microphone *;midi *;encrypted-media *;fullscreen *;usermedia *;",
);
super.initState();
}
@override
Widget build(BuildContext context) {
return HtmlElementView(viewType: 'html-view');
}
}
Ответ №1:
проблема заключалась в том, что я использовал canvasKit, поэтому холст прикреплялся к каждому HtmlElementView, а полотна повторно отображались при изменении размера окна.когда я отключил canvasKit, моя проблема была решена