import 'dart:async'; import 'dart:typed_data'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:flutter_inappwebview_platform_interface/flutter_inappwebview_platform_interface.dart'; ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser} class ChromeSafariBrowser implements PlatformChromeSafariBrowserEvents { /// Constructs a [ChromeSafariBrowser]. /// /// {@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser} ChromeSafariBrowser() : this.fromPlatformCreationParams( PlatformChromeSafariBrowserCreationParams(), ); /// Constructs a [ChromeSafariBrowser] from creation params for a specific /// platform. ChromeSafariBrowser.fromPlatformCreationParams( PlatformChromeSafariBrowserCreationParams params, ) : this.fromPlatform(PlatformChromeSafariBrowser(params)); /// Constructs a [ChromeSafariBrowser] from a specific platform /// implementation. ChromeSafariBrowser.fromPlatform(this.platform) { this.platform.eventHandler = this; } /// Implementation of [PlatformChromeSafariBrowser] for the current platform. final PlatformChromeSafariBrowser platform; ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.id} String get id => platform.id; ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.open} Future open( {WebUri? url, Map? headers, List? otherLikelyURLs, WebUri? referrer, @Deprecated('Use settings instead') // ignore: deprecated_member_use_from_same_package ChromeSafariBrowserClassOptions? options, ChromeSafariBrowserSettings? settings}) => platform.open( url: url, headers: headers, otherLikelyURLs: otherLikelyURLs, options: options, settings: settings); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.launchUrl} Future launchUrl({ required WebUri url, Map? headers, List? otherLikelyURLs, WebUri? referrer, }) => platform.launchUrl( url: url, headers: headers, otherLikelyURLs: otherLikelyURLs, referrer: referrer); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.mayLaunchUrl} Future mayLaunchUrl({WebUri? url, List? otherLikelyURLs}) => platform.mayLaunchUrl(url: url, otherLikelyURLs: otherLikelyURLs); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.validateRelationship} Future validateRelationship( {required CustomTabsRelationType relation, required WebUri origin}) => platform.validateRelationship(relation: relation, origin: origin); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.close} Future close() => platform.close(); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.isOpened} bool isOpened() => platform.isOpened(); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.setActionButton} void setActionButton(ChromeSafariBrowserActionButton actionButton) => platform.setActionButton(actionButton); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.updateActionButton} Future updateActionButton( {required Uint8List icon, required String description}) => platform.updateActionButton(icon: icon, description: description); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.setSecondaryToolbar} void setSecondaryToolbar( ChromeSafariBrowserSecondaryToolbar secondaryToolbar) => platform.setSecondaryToolbar(secondaryToolbar); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.updateSecondaryToolbar} Future updateSecondaryToolbar( ChromeSafariBrowserSecondaryToolbar secondaryToolbar) => platform.updateSecondaryToolbar(secondaryToolbar); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.addMenuItem} void addMenuItem(ChromeSafariBrowserMenuItem menuItem) => platform.addMenuItem(menuItem); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.addMenuItems} void addMenuItems(List menuItems) => platform.addMenuItems(menuItems); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.requestPostMessageChannel} Future requestPostMessageChannel( {required WebUri sourceOrigin, WebUri? targetOrigin}) => platform.requestPostMessageChannel( sourceOrigin: sourceOrigin, targetOrigin: targetOrigin); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.postMessage} Future postMessage(String message) => platform.postMessage(message); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.isEngagementSignalsApiAvailable} Future isEngagementSignalsApiAvailable() => platform.isEngagementSignalsApiAvailable(); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.isAvailable} static Future isAvailable() => PlatformChromeSafariBrowser.static().isAvailable(); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.getMaxToolbarItems} static Future getMaxToolbarItems() => PlatformChromeSafariBrowser.static().getMaxToolbarItems(); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.getPackageName} static Future getPackageName( {List? packages, bool ignoreDefault = false}) => PlatformChromeSafariBrowser.static() .getPackageName(packages: packages, ignoreDefault: ignoreDefault); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.clearWebsiteData} static Future clearWebsiteData() => PlatformChromeSafariBrowser.static().clearWebsiteData(); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.prewarmConnections} static Future prewarmConnections(List URLs) => PlatformChromeSafariBrowser.static().prewarmConnections(URLs); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.invalidatePrewarmingToken} static Future invalidatePrewarmingToken( PrewarmingToken prewarmingToken) => PlatformChromeSafariBrowser.static() .invalidatePrewarmingToken(prewarmingToken); ///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.dispose} @mustCallSuper void dispose() => platform.dispose(); @override void onClosed() {} @override void onCompletedInitialLoad(bool? didLoadSuccessfully) {} @override void onGreatestScrollPercentageIncreased(int scrollPercentage) {} @override void onInitialLoadDidRedirect(WebUri? url) {} @override void onMessageChannelReady() {} @override void onNavigationEvent(CustomTabsNavigationEventType? navigationEvent) {} @override void onOpened() {} @override void onPostMessage(String message) {} @override void onRelationshipValidationResult( CustomTabsRelationType? relation, WebUri? requestedOrigin, bool result) {} @override void onServiceConnected() {} @override void onSessionEnded(bool didUserInteract) {} @override void onVerticalScrollEvent(bool isDirectionUp) {} @override void onWillOpenInBrowser() {} }