build method

  1. @override
Widget build(
  1. BuildContext context
)

Builds a new WebView.

Returns a Widget tree that embeds the created web view.

Implementation

@override
Widget build(BuildContext context) {
  return HtmlElementView(
    key: params.key,
    onPlatformViewCreated: (id) {
      final iFrame = _controller._webWebViewParams.iFrame;
      web.EventListener? listener;

      listener = (() {
        final htmlString = _controller._htmlString;
        final javaScript = _controller._javaScript;

        _controller._htmlString = null;
        _controller._javaScript = null;

        if (htmlString != null) {
          /// Restore HTML
          _controller.loadHtmlString(htmlString);
        }
        if (javaScript != null) {
          /// Restore JavaScript
          _controller.runJavaScript(javaScript);
        }

        iFrame.removeEventListener('load', listener);
      }).toJS;

      iFrame.addEventListener('load', listener);

      _controller._webWebViewParams.iFrame.src = 'about:blank';
    },
    viewType: _controller._webWebViewParams.iFrame.id,
  );
}