openWebPage static method

Future<void> openWebPage({
  1. required String url,
  2. CustomTabsOptions customTabsOptions = const CustomTabsOptions(),
  3. SafariViewControllerOptions safariVCOptions = const SafariViewControllerOptions(),
})

Implementation

static Future<void> openWebPage({
  required String url,
  CustomTabsOptions customTabsOptions = const CustomTabsOptions(),
  SafariViewControllerOptions safariVCOptions =
      const SafariViewControllerOptions(),
}) {
  final CustomTabsColorSchemeParams customTabsDefaultColorSchemeParams =
      customTabsOptions.defaultColorSchemeParams ??
          CustomTabsColorSchemeParams(
            toolbarColor: customTabsOptions.toolbarColor,
            secondaryToolbarColor: customTabsOptions.secondaryToolbarColor,
            navigationBarColor: customTabsOptions.navigationBarColor,
          );
  final CustomTabsShareState customTabsShareState =
      customTabsOptions.shareState ??
          CustomTabsShareStateExtension.fromAddDefaultShareMenuItem(
            addDefaultShareMenuItem:
                customTabsOptions.addDefaultShareMenuItem,
          ) ??
          CustomTabsShareState.default_;

  return _channel.invokeMethod('openWebPage', {
    "url": url,
    'android_options': {
      'colorScheme': customTabsOptions.colorScheme.index,
      'lightColorSchemeParams': customTabsOptions.lightColorSchemeParams
          ?.toMethodChannelArgumentMap(),
      'darkColorSchemeParams': customTabsOptions.darkColorSchemeParams
          ?.toMethodChannelArgumentMap(),
      'defaultColorSchemeParams':
          customTabsDefaultColorSchemeParams.toMethodChannelArgumentMap(),
      'instantAppsEnabled': customTabsOptions.instantAppsEnabled,
      'shareState': customTabsShareState.index,
      'showTitle': customTabsOptions.showTitle,
      'urlBarHidingEnabled': customTabsOptions.urlBarHidingEnabled,
    },
    'ios_options': {
      'barCollapsingEnabled': safariVCOptions.barCollapsingEnabled,
      'entersReaderIfAvailable': safariVCOptions.entersReaderIfAvailable,
      'preferredBarTintColor':
          safariVCOptions.preferredBarTintColor?.hexColor,
      'preferredControlTintColor':
          safariVCOptions.preferredControlTintColor?.hexColor,
      'modalPresentationCapturesStatusBarAppearance':
          safariVCOptions.modalPresentationCapturesStatusBarAppearance,
      'dismissButtonStyle': safariVCOptions.dismissButtonStyle?.index,
      'modalPresentationStyle': safariVCOptions.modalPresentationStyle.name,
    },
  });
}