WebView class abstract

Abstract class that represents a WebView. Used by InAppWebView and HeadlessInAppWebView.

Implementers

Constructors

WebView({int? windowId, void onWebViewCreated(InAppWebViewController controller)?, void onLoadStart(InAppWebViewController controller, Uri? url)?, void onLoadStop(InAppWebViewController controller, Uri? url)?, void onLoadError(InAppWebViewController controller, Uri? url, int code, String message)?, void onLoadHttpError(InAppWebViewController controller, Uri? url, int statusCode, String description)?, void onProgressChanged(InAppWebViewController controller, int progress)?, void onConsoleMessage(InAppWebViewController controller, ConsoleMessage consoleMessage)?, Future<NavigationActionPolicy?> shouldOverrideUrlLoading(InAppWebViewController controller, NavigationAction navigationAction)?, void onLoadResource(InAppWebViewController controller, LoadedResource resource)?, void onScrollChanged(InAppWebViewController controller, int x, int y)?, void onDownloadStart(InAppWebViewController controller, Uri url)?, Future<CustomSchemeResponse?> onLoadResourceCustomScheme(InAppWebViewController controller, Uri url)?, Future<bool?> onCreateWindow(InAppWebViewController controller, CreateWindowAction createWindowAction)?, void onCloseWindow(InAppWebViewController controller)?, Future<JsAlertResponse?> onJsAlert(InAppWebViewController controller, JsAlertRequest jsAlertRequest)?, Future<JsConfirmResponse?> onJsConfirm(InAppWebViewController controller, JsConfirmRequest jsConfirmRequest)?, Future<JsPromptResponse?> onJsPrompt(InAppWebViewController controller, JsPromptRequest jsPromptRequest)?, Future<HttpAuthResponse?> onReceivedHttpAuthRequest(InAppWebViewController controller, HttpAuthenticationChallenge challenge)?, Future<ServerTrustAuthResponse?> onReceivedServerTrustAuthRequest(InAppWebViewController controller, ServerTrustChallenge challenge)?, Future<ClientCertResponse?> onReceivedClientCertRequest(InAppWebViewController controller, ClientCertChallenge challenge)?, void onFindResultReceived(InAppWebViewController controller, int activeMatchOrdinal, int numberOfMatches, bool isDoneCounting)?, Future<AjaxRequest?> shouldInterceptAjaxRequest(InAppWebViewController controller, AjaxRequest ajaxRequest)?, Future<AjaxRequestAction?> onAjaxReadyStateChange(InAppWebViewController controller, AjaxRequest ajaxRequest)?, Future<AjaxRequestAction?> onAjaxProgress(InAppWebViewController controller, AjaxRequest ajaxRequest)?, Future<FetchRequest?> shouldInterceptFetchRequest(InAppWebViewController controller, FetchRequest fetchRequest)?, void onUpdateVisitedHistory(InAppWebViewController controller, Uri? url, bool? androidIsReload)?, void onPrint(InAppWebViewController controller, Uri? url)?, void onLongPressHitTestResult(InAppWebViewController controller, InAppWebViewHitTestResult hitTestResult)?, void onEnterFullscreen(InAppWebViewController controller)?, void onExitFullscreen(InAppWebViewController controller)?, void onPageCommitVisible(InAppWebViewController controller, Uri? url)?, void onTitleChanged(InAppWebViewController controller, String? title)?, void onWindowFocus(InAppWebViewController controller)?, void onWindowBlur(InAppWebViewController controller)?, void onOverScrolled(InAppWebViewController controller, int x, int y, bool clampedX, bool clampedY)?, void onZoomScaleChanged(InAppWebViewController controller, double oldScale, double newScale)?, Future<SafeBrowsingResponse?> androidOnSafeBrowsingHit(InAppWebViewController controller, Uri url, SafeBrowsingThreat? threatType)?, Future<PermissionRequestResponse?> androidOnPermissionRequest(InAppWebViewController controller, String origin, List<String> resources)?, Future<GeolocationPermissionShowPromptResponse?> androidOnGeolocationPermissionsShowPrompt(InAppWebViewController controller, String origin)?, void androidOnGeolocationPermissionsHidePrompt(InAppWebViewController controller)?, Future<WebResourceResponse?> androidShouldInterceptRequest(InAppWebViewController controller, WebResourceRequest request)?, void androidOnRenderProcessGone(InAppWebViewController controller, RenderProcessGoneDetail detail)?, Future<WebViewRenderProcessAction?> androidOnRenderProcessResponsive(InAppWebViewController controller, Uri? url)?, Future<WebViewRenderProcessAction?> androidOnRenderProcessUnresponsive(InAppWebViewController controller, Uri? url)?, Future<FormResubmissionAction?> androidOnFormResubmission(InAppWebViewController controller, Uri? url)?, @Deprecated('Use `onZoomScaleChanged` instead') void androidOnScaleChanged(InAppWebViewController controller, double oldScale, double newScale)?, void androidOnReceivedIcon(InAppWebViewController controller, Uint8List icon)?, void androidOnReceivedTouchIconUrl(InAppWebViewController controller, Uri url, bool precomposed)?, Future<JsBeforeUnloadResponse?> androidOnJsBeforeUnload(InAppWebViewController controller, JsBeforeUnloadRequest jsBeforeUnloadRequest)?, void androidOnReceivedLoginRequest(InAppWebViewController controller, LoginRequest loginRequest)?, void iosOnWebContentProcessDidTerminate(InAppWebViewController controller)?, void iosOnDidReceiveServerRedirectForProvisionalNavigation(InAppWebViewController controller)?, Future<IOSNavigationResponseAction?> iosOnNavigationResponse(InAppWebViewController controller, IOSWKNavigationResponse navigationResponse)?, Future<IOSShouldAllowDeprecatedTLSAction?> iosShouldAllowDeprecatedTLS(InAppWebViewController controller, URLAuthenticationChallenge challenge)?, URLRequest? initialUrlRequest, String? initialFile, InAppWebViewInitialData? initialData, InAppWebViewGroupOptions? initialOptions, ContextMenu? contextMenu, UnmodifiableListView<UserScript>? initialUserScripts, PullToRefreshController? pullToRefreshController})

Properties

androidOnFormResubmission → (Future<FormResubmissionAction?> Function(InAppWebViewController controller, Uri? url)?)
As the host application if the browser should resend data as the requested page was a result of a POST. The default is to not resend the data.
final
androidOnGeolocationPermissionsHidePrompt → (void Function(InAppWebViewController controller)?)
Notify the host application that a request for Geolocation permissions, made with a previous call to androidOnGeolocationPermissionsShowPrompt has been canceled. Any related UI should therefore be hidden.
final
androidOnGeolocationPermissionsShowPrompt → (Future<GeolocationPermissionShowPromptResponse?> Function(InAppWebViewController controller, String origin)?)
Event that notifies the host application that web content from the specified origin is attempting to use the Geolocation API, but no permission state is currently set for that origin. Note that for applications targeting Android N and later SDKs (API level > Build.VERSION_CODES.M) this method is only called for requests originating from secure origins such as https. On non-secure origins geolocation requests are automatically denied.
final
androidOnJsBeforeUnload → (Future<JsBeforeUnloadResponse?> Function(InAppWebViewController controller, JsBeforeUnloadRequest jsBeforeUnloadRequest)?)
Event fired when the client should display a dialog to confirm navigation away from the current page. This is the result of the onbeforeunload javascript event. If JsBeforeUnloadResponse.handledByClient is true, WebView will assume that the client will handle the confirm dialog. If JsBeforeUnloadResponse.handledByClient is false, a default value of true will be returned to javascript to accept navigation away from the current page. The default behavior is to return false. Setting the JsBeforeUnloadResponse.action to JsBeforeUnloadResponseAction.CONFIRM will navigate away from the current page, JsBeforeUnloadResponseAction.CANCEL will cancel the navigation.
final
androidOnPermissionRequest → (Future<PermissionRequestResponse?> Function(InAppWebViewController controller, String origin, List<String> resources)?)
Event fired when the WebView is requesting permission to access the specified resources and the permission currently isn't granted or denied.
final
androidOnReceivedIcon → (void Function(InAppWebViewController controller, Uint8List icon)?)
Event fired when there is new favicon for the current page.
final
androidOnReceivedLoginRequest → (void Function(InAppWebViewController controller, LoginRequest loginRequest)?)
Event fired when a request to automatically log in the user has been processed.
final
androidOnReceivedTouchIconUrl → (void Function(InAppWebViewController controller, Uri url, bool precomposed)?)
Event fired when there is an url for an apple-touch-icon.
final
androidOnRenderProcessGone → (void Function(InAppWebViewController controller, RenderProcessGoneDetail detail)?)
Event fired when the given WebView's render process has exited. The application's implementation of this callback should only attempt to clean up the WebView. The WebView should be removed from the view hierarchy, all references to it should be cleaned up.
final
androidOnRenderProcessResponsive → (Future<WebViewRenderProcessAction?> Function(InAppWebViewController controller, Uri? url)?)
Event called once when an unresponsive renderer currently associated with the WebView becomes responsive.
final
androidOnRenderProcessUnresponsive → (Future<WebViewRenderProcessAction?> Function(InAppWebViewController controller, Uri? url)?)
Event called when the renderer currently associated with the WebView becomes unresponsive as a result of a long running blocking task such as the execution of JavaScript.
final
androidOnSafeBrowsingHit → (Future<SafeBrowsingResponse?> Function(InAppWebViewController controller, Uri url, SafeBrowsingThreat? threatType)?)
Event fired when the webview notifies that a loading URL has been flagged by Safe Browsing. The default behavior is to show an interstitial to the user, with the reporting checkbox visible.
final
androidOnScaleChanged → (void Function(InAppWebViewController controller, double oldScale, double newScale)?)
Use onZoomScaleChanged instead.
final
androidShouldInterceptRequest → (Future<WebResourceResponse?> Function(InAppWebViewController controller, WebResourceRequest request)?)
Notify the host application of a resource request and allow the application to return the data. If the return value is null, the WebView will continue to load the resource as usual. Otherwise, the return response and data will be used.
final
contextMenu ContextMenu?
Context menu which contains custom menu items to be shown when ContextMenu is presented.
final
hashCode int
The hash code for this object.
no setterinherited
initialData InAppWebViewInitialData?
Initial InAppWebViewInitialData that will be loaded.
final
initialFile String?
Initial asset file that will be loaded. See InAppWebViewController.loadFile for explanation.
final
initialOptions InAppWebViewGroupOptions?
Initial options that will be used.
final
initialUrlRequest URLRequest?
Initial url request that will be loaded.
final
initialUserScripts UnmodifiableListView<UserScript>?
Initial list of user scripts to be loaded at start or end of a page loading. To add or remove user scripts, you have to use the InAppWebViewController's methods such as InAppWebViewController.addUserScript, InAppWebViewController.removeUserScript, InAppWebViewController.removeAllUserScripts, etc.
final
iosOnDidReceiveServerRedirectForProvisionalNavigation → (void Function(InAppWebViewController controller)?)
Called when a web view receives a server redirect.
final
iosOnNavigationResponse → (Future<IOSNavigationResponseAction?> Function(InAppWebViewController controller, IOSWKNavigationResponse navigationResponse)?)
Called when a web view asks for permission to navigate to new content after the response to the navigation request is known.
final
iosOnWebContentProcessDidTerminate → (void Function(InAppWebViewController controller)?)
Invoked when the web view's web content process is terminated.
final
iosShouldAllowDeprecatedTLS → (Future<IOSShouldAllowDeprecatedTLSAction?> Function(InAppWebViewController controller, URLAuthenticationChallenge challenge)?)
Called when a web view asks whether to continue with a connection that uses a deprecated version of TLS (v1.0 and v1.1).
final
onAjaxProgress → (Future<AjaxRequestAction?> Function(InAppWebViewController controller, AjaxRequest ajaxRequest)?)
Event fired as an XMLHttpRequest progress. It gives the host application a chance to abort the request.
final
onAjaxReadyStateChange → (Future<AjaxRequestAction?> Function(InAppWebViewController controller, AjaxRequest ajaxRequest)?)
Event fired whenever the readyState attribute of an XMLHttpRequest changes. It gives the host application a chance to abort the request.
final
onCloseWindow → (void Function(InAppWebViewController controller)?)
Event fired when the host application should close the given WebView and remove it from the view system if necessary. At this point, WebCore has stopped any loading in this window and has removed any cross-scripting ability in javascript.
final
onConsoleMessage → (void Function(InAppWebViewController controller, ConsoleMessage consoleMessage)?)
Event fired when the WebView receives a ConsoleMessage.
final
onCreateWindow → (Future<bool?> Function(InAppWebViewController controller, CreateWindowAction createWindowAction)?)
Event fired when the WebView requests the host application to create a new window, for example when trying to open a link with target="_blank" or when window.open() is called by JavaScript side. If the host application chooses to honor this request, it should return true from this method, create a new WebView to host the window. If the host application chooses not to honor the request, it should return false from this method. The default implementation of this method does nothing and hence returns false.
final
onDownloadStart → (void Function(InAppWebViewController controller, Uri url)?)
Event fired when WebView recognizes a downloadable file. To download the file, you can use the flutter_downloader plugin.
final
onEnterFullscreen → (void Function(InAppWebViewController controller)?)
Event fired when the current page has entered full screen mode.
final
onExitFullscreen → (void Function(InAppWebViewController controller)?)
Event fired when the current page has exited full screen mode.
final
onFindResultReceived → (void Function(InAppWebViewController controller, int activeMatchOrdinal, int numberOfMatches, bool isDoneCounting)?)
Event fired as find-on-page operations progress. The listener may be notified multiple times while the operation is underway, and the numberOfMatches value should not be considered final unless isDoneCounting is true.
final
onJsAlert → (Future<JsAlertResponse?> Function(InAppWebViewController controller, JsAlertRequest jsAlertRequest)?)
Event fired when javascript calls the alert() method to display an alert dialog. If JsAlertResponse.handledByClient is true, the webview will assume that the client will handle the dialog.
final
onJsConfirm → (Future<JsConfirmResponse?> Function(InAppWebViewController controller, JsConfirmRequest jsConfirmRequest)?)
Event fired when javascript calls the confirm() method to display a confirm dialog. If JsConfirmResponse.handledByClient is true, the webview will assume that the client will handle the dialog.
final
onJsPrompt → (Future<JsPromptResponse?> Function(InAppWebViewController controller, JsPromptRequest jsPromptRequest)?)
Event fired when javascript calls the prompt() method to display a prompt dialog. If JsPromptResponse.handledByClient is true, the webview will assume that the client will handle the dialog.
final
onLoadError → (void Function(InAppWebViewController controller, Uri? url, int code, String message)?)
Event fired when the WebView encounters an error loading an url.
final
onLoadHttpError → (void Function(InAppWebViewController controller, Uri? url, int statusCode, String description)?)
Event fired when the WebView main page receives an HTTP error.
final
onLoadResource → (void Function(InAppWebViewController controller, LoadedResource resource)?)
Event fired when the WebView loads a resource.
final
onLoadResourceCustomScheme → (Future<CustomSchemeResponse?> Function(InAppWebViewController controller, Uri url)?)
Event fired when the WebView finds the custom-scheme while loading a resource. Here you can handle the url request and return a CustomSchemeResponse to load a specific resource encoded to base64.
final
onLoadStart → (void Function(InAppWebViewController controller, Uri? url)?)
Event fired when the WebView starts to load an url.
final
onLoadStop → (void Function(InAppWebViewController controller, Uri? url)?)
Event fired when the WebView finishes loading an url.
final
onLongPressHitTestResult → (void Function(InAppWebViewController controller, InAppWebViewHitTestResult hitTestResult)?)
Event fired when an HTML element of the webview has been clicked and held.
final
onOverScrolled → (void Function(InAppWebViewController controller, int x, int y, bool clampedX, bool clampedY)?)
Event fired to respond to the results of an over-scroll operation.
final
onPageCommitVisible → (void Function(InAppWebViewController controller, Uri? url)?)
Called when the web view begins to receive web content.
final
onPrint → (void Function(InAppWebViewController controller, Uri? url)?)
Event fired when window.print() is called from JavaScript side.
final
onProgressChanged → (void Function(InAppWebViewController controller, int progress)?)
Event fired when the current progress of loading a page is changed.
final
onReceivedClientCertRequest → (Future<ClientCertResponse?> Function(InAppWebViewController controller, ClientCertChallenge challenge)?)
Notify the host application to handle an SSL client certificate request. Webview stores the response in memory (for the life of the application) if ClientCertResponseAction.PROCEED or ClientCertResponseAction.CANCEL is called and does not call onReceivedClientCertRequest again for the same host and port pair. Note that, multiple layers in chromium network stack might be caching the responses.
final
onReceivedHttpAuthRequest → (Future<HttpAuthResponse?> Function(InAppWebViewController controller, HttpAuthenticationChallenge challenge)?)
Event fired when the WebView received an HTTP authentication request. The default behavior is to cancel the request.
final
onReceivedServerTrustAuthRequest → (Future<ServerTrustAuthResponse?> Function(InAppWebViewController controller, ServerTrustChallenge challenge)?)
Event fired when the WebView need to perform server trust authentication (certificate validation). The host application must return either ServerTrustAuthResponse instance with ServerTrustAuthResponseAction.CANCEL or ServerTrustAuthResponseAction.PROCEED.
final
onScrollChanged → (void Function(InAppWebViewController controller, int x, int y)?)
Event fired when the WebView scrolls.
final
onTitleChanged → (void Function(InAppWebViewController controller, String? title)?)
Event fired when a change in the document title occurred.
final
onUpdateVisitedHistory → (void Function(InAppWebViewController controller, Uri? url, bool? androidIsReload)?)
Event fired when the host application updates its visited links database. This event is also fired when the navigation state of the WebView changes through the usage of javascript History API functions (pushState(), replaceState()) and onpopstate event or, also, when the javascript window.location changes without reloading the webview (for example appending or modifying an hash to the url).
final
onWebViewCreated → (void Function(InAppWebViewController controller)?)
Event fired when the WebView is created.
final
onWindowBlur → (void Function(InAppWebViewController controller)?)
Event fired when the JavaScript window object of the WebView has lost focus. This is the result of the blur JavaScript event applied to the window object.
final
onWindowFocus → (void Function(InAppWebViewController controller)?)
Event fired when the JavaScript window object of the WebView has received focus. This is the result of the focus JavaScript event applied to the window object.
final
onZoomScaleChanged → (void Function(InAppWebViewController controller, double oldScale, double newScale)?)
Event fired when the zoom scale of the WebView has changed.
final
pullToRefreshController PullToRefreshController?
Represents the pull-to-refresh feature controller.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
shouldInterceptAjaxRequest → (Future<AjaxRequest?> Function(InAppWebViewController controller, AjaxRequest ajaxRequest)?)
Event fired when an XMLHttpRequest is sent to a server. It gives the host application a chance to take control over the request before sending it.
final
shouldInterceptFetchRequest → (Future<FetchRequest?> Function(InAppWebViewController controller, FetchRequest fetchRequest)?)
Event fired when a request is sent to a server through Fetch API. It gives the host application a chance to take control over the request before sending it.
final
shouldOverrideUrlLoading → (Future<NavigationActionPolicy?> Function(InAppWebViewController controller, NavigationAction navigationAction)?)
Give the host application a chance to take control when a URL is about to be loaded in the current WebView. This event is not called on the initial load of the WebView.
final
windowId int?
The window id of a CreateWindowAction.windowId.
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited