buildWidget method

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

build your widget here

Implementation

@override
Widget buildWidget(BuildContext context) {
  if (widget.controller.uri == '') {
    return const Text("");
  }
  Set<Factory<OneSequenceGestureRecognizer>> gestureRecognizers = {
    Factory(() => EagerGestureRecognizer())
  };
  if (_webViewController == null) {
    _webViewController = WebViewController();
    _webViewController
      ?..setBackgroundColor(Colors.transparent)
      ..setJavaScriptMode(JavaScriptMode.unrestricted)
      ..addJavaScriptChannel('messageHandler',
          onMessageReceived: _handleTabaPayMessage)
      ..setNavigationDelegate(
          NavigationDelegate(onPageFinished: (String url) {
        _webViewController?.runJavaScript(
            'window.addEventListener("message", (event) => messageHandler.postMessage(event.data))');
      }));
    _webViewController?.loadRequest(Uri.parse(widget.controller.uri));
  }

  double height = MediaQuery.of(context).size.height;
  var padding = MediaQuery.of(context).viewPadding;
  double safeHeight = height - padding.top - padding.bottom;
  return SizedBox(
      width: widget.controller.width,
      height: widget.controller.height ?? safeHeight,
      child: WebViewWidget(
          controller: _webViewController!,
          gestureRecognizers: gestureRecognizers));
}