webViewLoadUrl method

Widget webViewLoadUrl({
  1. required String url,
  2. required WebViewConfig webViewConfig,
})

Implementation

Widget webViewLoadUrl({
  required String url,
  required WebViewConfig webViewConfig,
}) {
  final viewType = 'clickio_webview';
  final backgroundColor = webViewConfig.backgroundColor?.toARGB32();
  final height = webViewConfig.height ?? double.infinity;
  final width = webViewConfig.width ?? double.infinity;
  final isAndroid = defaultTargetPlatform == TargetPlatform.android;

  Widget webView = SizedBox(
    height: height.toDouble(),
    width: width.toDouble(),
    child:
        isAndroid
            ? AndroidView(
              viewType: viewType,
              creationParams: {
                'url': url,
                'backgroundColor': backgroundColor,
                'height': webViewConfig.height,
                'width': webViewConfig.width,
                'gravity': webViewConfig.gravity?.name,
              },
              creationParamsCodec: const StandardMessageCodec(),
            )
            : UiKitView(
              viewType: viewType,
              creationParams: {
                'url': url,
                'backgroundColor': backgroundColor,
                'height': webViewConfig.height,
                'width': webViewConfig.width,
                'gravity': webViewConfig.gravity?.name,
              },
              creationParamsCodec: const StandardMessageCodec(),
            ),
  );

  if (isAndroid) {
    Alignment alignment;

    switch (webViewConfig.gravity) {
      case WebViewGravity.top:
        alignment = Alignment.topCenter;
        break;
      case WebViewGravity.bottom:
        alignment = Alignment.bottomCenter;
        break;
      case WebViewGravity.center:
      default:
        alignment = Alignment.center;
    }

    webView = Align(alignment: alignment, child: webView);
  }

  return webView;
}