Upgrading webview_flutter_android 2 to 3
Breaking2.10.4 → 3.16.9Breaking2Platform9New16Changed13Fixed15Other17
BreakingUpgrade verdict
2 breaking changes and 9 platform requirement changes.
In plain terms
- Apps still on the old v1 Android embedding are no longer supported and must move to the v2 embedding.
- This version relies on a new, incompatible version of the shared WebView interface, so existing code may need updates.
- You need Flutter 3.24 or Dart 3.5 or newer to use this version.
- This version requires Flutter 3.22 or newer and Dart 3.4 or newer.
Must act Top 5 of 11 that need code or config changes
Dart SDK requirement changed in 3.16.9: >=2.14.0 <3.0.0 → ^3.5.0.
Flutter requirement changed in 3.16.9: >=3.0.0 → >=3.24.0.
What you must change
Breaking2
Removes support for apps using the v1 Android embedding.
Updates the platform implementation to the 2.0.0 release of webview_flutter_platform_interface, a breaking change.
webview_flutter_platform_interfacePlatform9
Updates minimum supported SDK version to Flutter 3.24/Dart 3.5.
Updates minimum supported SDK version to Flutter 3.22/Dart 3.4.
Updates minimum supported SDK version to Flutter 3.16/Dart 3.2.
Updates minimum supported SDK version to Flutter 3.13/Dart 3.1.
Updates compileSdk to 34.
compileSdkUpdates minimum supported SDK version to Flutter 3.10/Dart 3.0.
Updates minimum supported SDK version to Flutter 3.7/Dart 2.19.
Updates the minimum Flutter version to 3.3.
Updates compileSdkVersion to 33.
compileSdkVersionAPI changes
Generated by DepDelta from published Dart source. Not mixed with prose notes.
- removed:
class AndroidWebView implements WebViewPlatform - removed:
method AndroidWebView.build({ required BuildContext context, required CreationParams creationParams, required WebViewPlatformCallbacksHandler webViewPlatformCallbacksHandler, required JavascriptChannelRegistry javascriptChannelRegistry, WebViewPlatformCreatedCallback? onWebViewPlatformCreated, Set<Factory<OneSequenceGestureRecognizer>>? gestureRecognizers, }): Widget - removed:
method AndroidWebView.clearCookies(): Future<bool>
- removed:
class WebViewAndroidCookieManager extends WebViewCookieManagerPlatform - removed:
method WebViewAndroidCookieManager.clearCookies(): Future<bool> - removed:
method WebViewAndroidCookieManager.setCookie(WebViewCookie cookie): Future<void>
- removed:
class WebViewAndroidDownloadListener extends android_webview.DownloadListener - removed:
class WebViewAndroidJavaScriptChannel extends android_webview.JavaScriptChannel - removed:
class WebViewAndroidPlatformController extends WebViewPlatformController - removed:
class WebViewAndroidWebChromeClient extends android_webview.WebChromeClient - removed:
class WebViewAndroidWebViewClient extends android_webview.WebViewClient - removed:
class WebViewAndroidWidget extends StatefulWidget - removed:
class WebViewProxy - removed:
ctor WebViewAndroidDownloadListener({required this.loadUrl}) - removed:
ctor WebViewAndroidJavaScriptChannel( String channelName, this.javascriptChannelRegistry) - removed:
ctor WebViewAndroidPlatformController({ required bool useHybridComposition, required CreationParams creationParams, required this.callbacksHandler, required this.javascriptChannelRegistry, @visibleForTesting this.webViewProxy = …, @visibleForTesting this.flutterAssetManager = …, @visibleForTesting android_webview.WebStorage? webStorage, }) - removed:
ctor WebViewAndroidWebViewClient({ required this.onPageStartedCallback, required this.onPageFinishedCallback, required this.onWebResourceErrorCallback, }) - removed:
ctor WebViewAndroidWebViewClient.handlesNavigation({ required this.onPageStartedCallback, required this.onPageFinishedCallback, required this.onWebResourceErrorCallback, required this.onNavigationRequestCallback, required this.loadUrl, }) - removed:
ctor WebViewAndroidWidget({ Key? key, required this.creationParams, required this.useHybridComposition, required this.callbacksHandler, required this.javascriptChannelRegistry, required this.onBuildWidget, @visibleForTesting this.webViewProxy = …, @visibleForTesting this.flutterAssetManager = …, @visibleForTesting this.webStorage, }) - removed:
ctor WebViewProxy() - removed:
field WebViewAndroidJavaScriptChannel.javascriptChannelRegistry: final JavascriptChannelRegistry - removed:
field WebViewAndroidPlatformController.WebViewAndroidJavaScriptChannel>: final Map<String, WebViewAndroidJavaScriptChannel> - removed:
field WebViewAndroidPlatformController.callbacksHandler: final WebViewPlatformCallbacksHandler - removed:
field WebViewAndroidPlatformController.downloadListener: late final WebViewAndroidDownloadListener - removed:
field WebViewAndroidPlatformController.flutterAssetManager: final android_webview.FlutterAssetManager - removed:
field WebViewAndroidPlatformController.javascriptChannelRegistry: final JavascriptChannelRegistry - removed:
field WebViewAndroidPlatformController.webChromeClient: late final WebViewAndroidWebChromeClient - removed:
field WebViewAndroidPlatformController.webStorage: final android_webview.WebStorage - removed:
field WebViewAndroidPlatformController.webView: late final android_webview.WebView - removed:
field WebViewAndroidPlatformController.webViewProxy: final WebViewProxy - removed:
field WebViewAndroidWidget.callbacksHandler: final WebViewPlatformCallbacksHandler - removed:
field WebViewAndroidWidget.creationParams: final CreationParams - removed:
field WebViewAndroidWidget.flutterAssetManager: final android_webview.FlutterAssetManager - removed:
field WebViewAndroidWidget.javascriptChannelRegistry: final JavascriptChannelRegistry - removed:
field WebViewAndroidWidget.useHybridComposition: final bool - removed:
field WebViewAndroidWidget.webStorage: final android_webview.WebStorage? - removed:
field WebViewAndroidWidget.webViewProxy: final WebViewProxy - removed:
get WebViewAndroidPlatformController.webViewClient: WebViewAndroidWebViewClient - removed:
get WebViewAndroidWebViewClient.handlesNavigation: bool - removed:
method WebViewAndroidDownloadListener.Function(String url, Map<String, String>? headers): Future<void> - removed:
method WebViewAndroidDownloadListener.Function({ required String url, required bool isForMainFrame, }): FutureOr<bool> - removed:
method WebViewAndroidDownloadListener.onDownloadStart( String url, String userAgent, String contentDisposition, String mimetype, int contentLength, ): void - removed:
method WebViewAndroidJavaScriptChannel.postMessage(String message): void - removed:
method WebViewAndroidPlatformController.addJavascriptChannels(Set<String> javascriptChannelNames): Future<void> - removed:
method WebViewAndroidPlatformController.canGoBack(): Future<bool> - removed:
method WebViewAndroidPlatformController.canGoForward(): Future<bool> - removed:
method WebViewAndroidPlatformController.clearCache(): Future<void> - removed:
method WebViewAndroidPlatformController.currentUrl(): Future<String?> - removed:
method WebViewAndroidPlatformController.evaluateJavascript(String javascript): Future<String> - removed:
method WebViewAndroidPlatformController.getScrollX(): Future<int> - removed:
method WebViewAndroidPlatformController.getScrollY(): Future<int> - removed:
method WebViewAndroidPlatformController.getTitle(): Future<String?> - removed:
method WebViewAndroidPlatformController.goBack(): Future<void> - removed:
method WebViewAndroidPlatformController.goForward(): Future<void> - removed:
method WebViewAndroidPlatformController.loadFile(String absoluteFilePath): Future<void> - removed:
method WebViewAndroidPlatformController.loadFlutterAsset(String key): Future<void> - removed:
method WebViewAndroidPlatformController.loadHtmlString(String html, {String? baseUrl}): Future<void> - removed:
method WebViewAndroidPlatformController.loadRequest( WebViewRequest request, ): Future<void> - removed:
method WebViewAndroidPlatformController.loadUrl( String url, Map<String, String>? headers, ): Future<void> - removed:
method WebViewAndroidPlatformController.reload(): Future<void> - removed:
method WebViewAndroidPlatformController.removeJavascriptChannels( Set<String> javascriptChannelNames, ): Future<void> - removed:
method WebViewAndroidPlatformController.runJavascript(String javascript): Future<void> - removed:
method WebViewAndroidPlatformController.runJavascriptReturningResult(String javascript): Future<String> - removed:
method WebViewAndroidPlatformController.scrollBy(int x, int y): Future<void> - removed:
method WebViewAndroidPlatformController.scrollTo(int x, int y): Future<void> - removed:
method WebViewAndroidPlatformController.updateSettings(WebSettings setting): Future<void> - removed:
method WebViewAndroidWebChromeClient.Function(int progress): void - removed:
method WebViewAndroidWebChromeClient.onProgressChanged(android_webview.WebView webView, int progress): void - removed:
method WebViewAndroidWebViewClient.Function(String url): void - removed:
method WebViewAndroidWebViewClient.Function(String url, Map<String, String>? headers): Future<void> - removed:
method WebViewAndroidWebViewClient.Function(WebResourceError error): void - removed:
method WebViewAndroidWebViewClient.Function({ required String url, required bool isForMainFrame, }): FutureOr<bool> - removed:
method WebViewAndroidWebViewClient.onPageFinished(android_webview.WebView webView, String url): void - removed:
method WebViewAndroidWebViewClient.onPageStarted(android_webview.WebView webView, String url): void - removed:
method WebViewAndroidWebViewClient.onReceivedError( android_webview.WebView webView, int errorCode, String description, String failingUrl, ): void - removed:
method WebViewAndroidWebViewClient.onReceivedRequestError( android_webview.WebView webView, android_webview.WebResourceRequest request, android_webview.WebResourceError error, ): void - removed:
method WebViewAndroidWebViewClient.requestLoading( android_webview.WebView webView, android_webview.WebResourceRequest request, ): void - removed:
method WebViewAndroidWebViewClient.urlLoading(android_webview.WebView webView, String url): void - removed:
method WebViewAndroidWidget.Function(WebViewAndroidPlatformController controller): Widget - removed:
method WebViewAndroidWidget.createState(): State<StatefulWidget> - removed:
method WebViewProxy.createWebView({required bool useHybridComposition}): android_webview.WebView - removed:
method WebViewProxy.setWebContentsDebuggingEnabled(bool enabled): Future<void>
- added:
class AndroidCustomViewWidget extends StatelessWidget - added:
class AndroidJavaScriptChannelParams extends JavaScriptChannelParams - added:
class AndroidNavigationDelegate extends PlatformNavigationDelegate - added:
class AndroidNavigationDelegateCreationParams extends PlatformNavigationDelegateCreationParams - added:
class AndroidUrlChange extends UrlChange - added:
class AndroidWebResourceError extends WebResourceError - added:
class AndroidWebViewController extends PlatformWebViewController - added:
class AndroidWebViewControllerCreationParams extends PlatformWebViewControllerCreationParams - added:
class AndroidWebViewCookieManager extends PlatformWebViewCookieManager - added:
class AndroidWebViewCookieManagerCreationParams extends PlatformWebViewCookieManagerCreationParams - added:
class AndroidWebViewPermissionRequest extends PlatformWebViewPermissionRequest - added:
class AndroidWebViewPermissionResourceType extends WebViewPermissionResourceType - added:
class AndroidWebViewPlatform extends WebViewPlatform - added:
class AndroidWebViewWidget extends PlatformWebViewWidget - added:
class AndroidWebViewWidgetCreationParams extends PlatformWebViewWidgetCreationParams - added:
class FileSelectorParams - added:
class GeolocationPermissionsRequestParams - added:
class GeolocationPermissionsResponse - added:
ctor AndroidCustomViewWidget.private({ super.key, required this.controller, required this.customView, @visibleForTesting InstanceManager? instanceManager, @visibleForTesting this.platformViewsServiceProxy = …, }) - added:
ctor AndroidJavaScriptChannelParams({ required super.name, required super.onMessageReceived, @visibleForTesting AndroidWebViewProxy webViewProxy = …, }) - added:
ctor AndroidJavaScriptChannelParams.fromJavaScriptChannelParams( JavaScriptChannelParams params, { @visibleForTesting AndroidWebViewProxy webViewProxy = …, }) - added:
ctor AndroidNavigationDelegate(PlatformNavigationDelegateCreationParams params) - added:
ctor AndroidNavigationDelegateCreationParams.fromPlatformNavigationDelegateCreationParams( PlatformNavigationDelegateCreationParams params, { @visibleForTesting AndroidWebViewProxy androidWebViewProxy = …, }) - added:
ctor AndroidUrlChange({required super.url, required this.isReload}) - added:
ctor AndroidWebViewController(PlatformWebViewControllerCreationParams params) - added:
ctor AndroidWebViewControllerCreationParams({ @visibleForTesting this.androidWebViewProxy = …, @visibleForTesting android_webview.WebStorage? androidWebStorage, }) - added:
ctor AndroidWebViewControllerCreationParams.fromPlatformWebViewControllerCreationParams( PlatformWebViewControllerCreationParams params, { @visibleForTesting AndroidWebViewProxy androidWebViewProxy = …, @visibleForTesting android_webview.WebStorage? androidWebStorage, }) - added:
ctor AndroidWebViewCookieManager( PlatformWebViewCookieManagerCreationParams params, { CookieManager? cookieManager, }) - added:
ctor AndroidWebViewCookieManagerCreationParams.fromPlatformWebViewCookieManagerCreationParams( PlatformWebViewCookieManagerCreationParams params) - added:
ctor AndroidWebViewWidget(PlatformWebViewWidgetCreationParams params) - added:
ctor AndroidWebViewWidgetCreationParams({ super.key, required super.controller, super.layoutDirection, super.gestureRecognizers, this.displayWithHybridComposition = …, @visibleForTesting InstanceManager? instanceManager, @visibleForTesting this.platformViewsServiceProxy = …, }) - added:
ctor AndroidWebViewWidgetCreationParams.fromPlatformWebViewWidgetCreationParams( PlatformWebViewWidgetCreationParams params, { bool displayWithHybridComposition = …, @visibleForTesting InstanceManager? instanceManager, @visibleForTesting PlatformViewsServiceProxy platformViewsServiceProxy = …, }) - added:
ctor FileSelectorParams({ required this.isCaptureEnabled, required this.acceptTypes, this.filenameHint, required this.mode, }) - added:
ctor GeolocationPermissionsRequestParams({ required this.origin, }) - added:
ctor GeolocationPermissionsResponse({ required this.allow, required this.retain, }) - added:
enum FileSelectorMode - added:
field AndroidCustomViewWidget.controller: final PlatformWebViewController - added:
field AndroidCustomViewWidget.customView: final android_webview.View - added:
field AndroidCustomViewWidget.instanceManager: final InstanceManager - added:
field AndroidCustomViewWidget.platformViewsServiceProxy: final PlatformViewsServiceProxy - added:
field AndroidNavigationDelegateCreationParams.androidWebViewProxy: final AndroidWebViewProxy - added:
field AndroidUrlChange.isReload: final bool - added:
field AndroidWebResourceError.failingUrl: final String? - added:
field AndroidWebViewController.AndroidJavaScriptChannelParams>: final Map<String, AndroidJavaScriptChannelParams> - added:
field AndroidWebViewControllerCreationParams.androidWebStorage: final android_webview.WebStorage - added:
field AndroidWebViewControllerCreationParams.androidWebViewProxy: final AndroidWebViewProxy - added:
field AndroidWebViewWidgetCreationParams.displayWithHybridComposition: final bool - added:
field AndroidWebViewWidgetCreationParams.instanceManager: final InstanceManager - added:
field AndroidWebViewWidgetCreationParams.platformViewsServiceProxy: final PlatformViewsServiceProxy - added:
field FileSelectorParams.acceptTypes: final List<String> - added:
field FileSelectorParams.filenameHint: final String? - added:
field FileSelectorParams.isCaptureEnabled: final bool - added:
field FileSelectorParams.mode: final FileSelectorMode - added:
field GeolocationPermissionsRequestParams.origin: final String - added:
field GeolocationPermissionsResponse.allow: final bool - added:
field GeolocationPermissionsResponse.retain: final bool - added:
get AndroidNavigationDelegate.androidDownloadListener: android_webview.DownloadListener - added:
get AndroidNavigationDelegate.androidWebChromeClient: android_webview.WebChromeClient - added:
get AndroidNavigationDelegate.androidWebViewClient: android_webview.WebViewClient - added:
get AndroidWebViewController.webViewIdentifier: int - added:
get AndroidWebViewWidgetCreationParams.hashCode: int - added:
member FileSelectorMode.open - added:
member FileSelectorMode.openMultiple - added:
member FileSelectorMode.save - added:
method AndroidCustomViewWidget.build(BuildContext context): Widget - added:
method AndroidNavigationDelegate.setOnHttpAuthRequest( HttpAuthRequestCallback onHttpAuthRequest, ): Future<void> - added:
method AndroidNavigationDelegate.setOnHttpError( HttpResponseErrorCallback onHttpError, ): Future<void> - added:
method AndroidNavigationDelegate.setOnLoadRequest( LoadRequestCallback onLoadRequest, ): Future<void> - added:
method AndroidNavigationDelegate.setOnNavigationRequest( NavigationRequestCallback onNavigationRequest, ): Future<void> - added:
method AndroidNavigationDelegate.setOnPageFinished( PageEventCallback onPageFinished, ): Future<void> - added:
method AndroidNavigationDelegate.setOnPageStarted( PageEventCallback onPageStarted, ): Future<void> - added:
method AndroidNavigationDelegate.setOnProgress( ProgressCallback onProgress, ): Future<void> - added:
method AndroidNavigationDelegate.setOnUrlChange(UrlChangeCallback onUrlChange): Future<void> - added:
method AndroidNavigationDelegate.setOnWebResourceError( WebResourceErrorCallback onWebResourceError, ): Future<void> - added:
method AndroidWebViewController.Function(FileSelectorParams): Future<List<String>> - added:
method AndroidWebViewController.Function(JavaScriptAlertDialogRequest request): Future<void> - added:
method AndroidWebViewController.Function(JavaScriptConfirmDialogRequest request): Future<bool> - added:
method AndroidWebViewController.Function(JavaScriptConsoleMessage consoleMessage): void - added:
method AndroidWebViewController.Function(JavaScriptTextInputDialogRequest request): Future<String> - added:
method AndroidWebViewController.Function(PlatformWebViewPermissionRequest): void - added:
method AndroidWebViewController.Function(ScrollPositionChange scrollPositionChange): void - added:
method AndroidWebViewController.addJavaScriptChannel( JavaScriptChannelParams javaScriptChannelParams, ): Future<void> - added:
method AndroidWebViewController.canGoBack(): Future<bool> - added:
method AndroidWebViewController.canGoForward(): Future<bool> - added:
method AndroidWebViewController.clearCache(): Future<void> - added:
method AndroidWebViewController.clearLocalStorage(): Future<void> - added:
method AndroidWebViewController.currentUrl(): Future<String?> - added:
method AndroidWebViewController.enableZoom(bool enabled): Future<void> - added:
method AndroidWebViewController.getScrollPosition(): Future<Offset> - added:
method AndroidWebViewController.getTitle(): Future<String?> - added:
method AndroidWebViewController.getUserAgent(): Future<String?> - added:
method AndroidWebViewController.goBack(): Future<void> - added:
method AndroidWebViewController.goForward(): Future<void> - added:
method AndroidWebViewController.loadFile( String absoluteFilePath, ): Future<void> - added:
method AndroidWebViewController.loadFlutterAsset( String key, ): Future<void> - added:
method AndroidWebViewController.loadHtmlString( String html, { String? baseUrl, }): Future<void> - added:
method AndroidWebViewController.loadRequest( LoadRequestParams params, ): Future<void> - added:
method AndroidWebViewController.reload(): Future<void> - added:
method AndroidWebViewController.removeJavaScriptChannel(String javaScriptChannelName): Future<void> - added:
method AndroidWebViewController.runJavaScript(String javaScript): Future<void> - added:
method AndroidWebViewController.runJavaScriptReturningResult(String javaScript): Future<Object> - added:
method AndroidWebViewController.scrollBy(int x, int y): Future<void> - added:
method AndroidWebViewController.scrollTo(int x, int y): Future<void> - added:
method AndroidWebViewController.setBackgroundColor(Color color): Future<void> - added:
method AndroidWebViewController.setCustomWidgetCallbacks({ required OnShowCustomWidgetCallback? onShowCustomWidget, required OnHideCustomWidgetCallback? onHideCustomWidget, }): Future<void> - added:
method AndroidWebViewController.setGeolocationPermissionsPromptCallbacks({ OnGeolocationPermissionsShowPrompt? onShowPrompt, OnGeolocationPermissionsHidePrompt? onHidePrompt, }): Future<void> - added:
method AndroidWebViewController.setJavaScriptMode(JavaScriptMode javaScriptMode): Future<void> - added:
method AndroidWebViewController.setMediaPlaybackRequiresUserGesture(bool require): Future<void> - added:
method AndroidWebViewController.setOnConsoleMessage( void Function(JavaScriptConsoleMessage consoleMessage) onConsoleMessage): Future<void> - added:
method AndroidWebViewController.setOnJavaScriptAlertDialog( Future<void> Function(JavaScriptAlertDialogRequest request) onJavaScriptAlertDialog): Future<void> - added:
method AndroidWebViewController.setOnJavaScriptConfirmDialog( Future<bool> Function(JavaScriptConfirmDialogRequest request) onJavaScriptConfirmDialog): Future<void> - added:
method AndroidWebViewController.setOnJavaScriptTextInputDialog( Future<String> Function(JavaScriptTextInputDialogRequest request) onJavaScriptTextInputDialog): Future<void> - added:
method AndroidWebViewController.setOnPlatformPermissionRequest( void Function( PlatformWebViewPermissionRequest request, ) onPermissionRequest, ): Future<void> - added:
method AndroidWebViewController.setOnScrollPositionChange( void Function(ScrollPositionChange scrollPositionChange)? onScrollPositionChange): Future<void> - added:
method AndroidWebViewController.setOnShowFileSelector( Future<List<String>> Function(FileSelectorParams params)? onShowFileSelector, ): Future<void> - added:
method AndroidWebViewController.setPlatformNavigationDelegate( covariant AndroidNavigationDelegate handler): Future<void> - added:
method AndroidWebViewController.setTextZoom(int textZoom): Future<void> - added:
method AndroidWebViewController.setUserAgent(String? userAgent): Future<void> - added:
method AndroidWebViewCookieManager.clearCookies(): Future<bool> - added:
method AndroidWebViewCookieManager.setAcceptThirdPartyCookies( AndroidWebViewController controller, bool accept, ): Future<void> - added:
method AndroidWebViewCookieManager.setCookie(WebViewCookie cookie): Future<void> - added:
method AndroidWebViewPermissionRequest.deny(): Future<void> - added:
method AndroidWebViewPermissionRequest.grant(): Future<void> - added:
method AndroidWebViewPlatform.createPlatformCookieManager( PlatformWebViewCookieManagerCreationParams params, ): AndroidWebViewCookieManager - added:
method AndroidWebViewPlatform.createPlatformNavigationDelegate( PlatformNavigationDelegateCreationParams params, ): AndroidNavigationDelegate - added:
method AndroidWebViewPlatform.createPlatformWebViewController( PlatformWebViewControllerCreationParams params, ): AndroidWebViewController - added:
method AndroidWebViewPlatform.createPlatformWebViewWidget( PlatformWebViewWidgetCreationParams params, ): AndroidWebViewWidget - added:
method AndroidWebViewWidget.build(BuildContext context): Widget - added:
method AndroidWebViewWidgetCreationParams.operator ==(Object other): bool - added:
static field AndroidWebViewPermissionResourceType.midiSysex: const AndroidWebViewPermissionResourceType - added:
static field AndroidWebViewPermissionResourceType.protectedMediaId: const AndroidWebViewPermissionResourceType - added:
static method AndroidWebViewController.enableDebugging( bool enabled, { @visibleForTesting AndroidWebViewProxy webViewProxy = …, }): Future<void> - added:
static method AndroidWebViewPlatform.registerWith(): void - added:
typedef LoadRequestCallback = Future<void> Function(LoadRequestParams params) - added:
typedef OnGeolocationPermissionsHidePrompt = void Function() - added:
typedef OnGeolocationPermissionsShowPrompt = Future<GeolocationPermissionsResponse> Function( GeolocationPermissionsRequestParams request) - added:
typedef OnHideCustomWidgetCallback = void Function() - added:
typedef OnShowCustomWidgetCallback = void Function( Widget widget, void Function() onCustomWidgetHidden)
- removed:
class SurfaceAndroidWebView extends AndroidWebView - removed:
method SurfaceAndroidWebView.build({ required BuildContext context, required CreationParams creationParams, required JavascriptChannelRegistry javascriptChannelRegistry, WebViewPlatformCreatedCallback? onWebViewPlatformCreated, Set<Factory<OneSequenceGestureRecognizer>>? gestureRecognizers, required WebViewPlatformCallbacksHandler webViewPlatformCallbacksHandler, }): Widget