Элемент IFrameElement перезагрузится после открытия клавиатуры в flutter pwa

#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, моя проблема была решена