iosWebViewFix/lib/src/chrome_safari_browser/chrome_safari_browser.dart
Lorenzo Pichilli d57af8eb46 updated docs
2023-11-24 17:56:57 +01:00

194 lines
7.6 KiB
Dart
Executable File

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<void> open(
{WebUri? url,
Map<String, String>? headers,
List<WebUri>? 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<void> launchUrl({
required WebUri url,
Map<String, String>? headers,
List<WebUri>? otherLikelyURLs,
WebUri? referrer,
}) =>
platform.launchUrl(
url: url,
headers: headers,
otherLikelyURLs: otherLikelyURLs,
referrer: referrer);
///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.mayLaunchUrl}
Future<bool> mayLaunchUrl({WebUri? url, List<WebUri>? otherLikelyURLs}) =>
platform.mayLaunchUrl(url: url, otherLikelyURLs: otherLikelyURLs);
///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.validateRelationship}
Future<bool> validateRelationship(
{required CustomTabsRelationType relation, required WebUri origin}) =>
platform.validateRelationship(relation: relation, origin: origin);
///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.close}
Future<void> 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<void> 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<void> 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<ChromeSafariBrowserMenuItem> menuItems) =>
platform.addMenuItems(menuItems);
///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.requestPostMessageChannel}
Future<bool> requestPostMessageChannel(
{required WebUri sourceOrigin, WebUri? targetOrigin}) =>
platform.requestPostMessageChannel(
sourceOrigin: sourceOrigin, targetOrigin: targetOrigin);
///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.postMessage}
Future<CustomTabsPostMessageResultType> postMessage(String message) =>
platform.postMessage(message);
///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.isEngagementSignalsApiAvailable}
Future<bool> isEngagementSignalsApiAvailable() =>
platform.isEngagementSignalsApiAvailable();
///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.isAvailable}
static Future<bool> isAvailable() =>
PlatformChromeSafariBrowser.static().isAvailable();
///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.getMaxToolbarItems}
static Future<int> getMaxToolbarItems() =>
PlatformChromeSafariBrowser.static().getMaxToolbarItems();
///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.getPackageName}
static Future<String?> getPackageName(
{List<String>? packages, bool ignoreDefault = false}) =>
PlatformChromeSafariBrowser.static()
.getPackageName(packages: packages, ignoreDefault: ignoreDefault);
///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.clearWebsiteData}
static Future<void> clearWebsiteData() =>
PlatformChromeSafariBrowser.static().clearWebsiteData();
///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.prewarmConnections}
static Future<PrewarmingToken?> prewarmConnections(List<WebUri> URLs) =>
PlatformChromeSafariBrowser.static().prewarmConnections(URLs);
///{@macro flutter_inappwebview_platform_interface.PlatformChromeSafariBrowser.invalidatePrewarmingToken}
static Future<void> 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() {}
}