onAjaxProgress method

  1. @SupportedPlatforms.new(platforms: [AndroidPlatform(note: """In order to be able to listen this event, check the [InAppWebViewSettings.useShouldInterceptAjaxRequest] and [InAppWebViewSettings.useOnAjaxProgress] settings documentation. Also, on Android that doesn't support the [WebViewFeature.DOCUMENT_START_SCRIPT], unlike iOS that has [WKUserScript](https://developer.apple.com/documentation/webkit/wkuserscript) that can inject javascript code right after the document element is created but before any other content is loaded, in Android the javascript code used to intercept ajax requests is loaded as soon as possible so it won't be instantaneous as iOS. In that case, after the `window.addEventListener("flutterInAppWebViewPlatformReady")` event is dispatched, the ajax requests can be intercept for sure."""), IOSPlatform(), MacOSPlatform()])
FutureOr<AjaxRequestAction?>? onAjaxProgress(
  1. AjaxRequest ajaxRequest
)

Event fired as an XMLHttpRequest progress. It gives the host application a chance to abort the request. This event is implemented using JavaScript under the hood.

ajaxRequest represents the XMLHttpRequest.

Officially Supported Platforms/Implementations:

  • Android WebView:
    • In order to be able to listen this event, check the InAppWebViewSettings.useShouldInterceptAjaxRequest and InAppWebViewSettings.useOnAjaxProgress settings documentation. Also, on Android that doesn't support the WebViewFeature.DOCUMENT_START_SCRIPT, unlike iOS that has WKUserScript that can inject javascript code right after the document element is created but before any other content is loaded, in Android the javascript code used to intercept ajax requests is loaded as soon as possible so it won't be instantaneous as iOS. In that case, after the window.addEventListener("flutterInAppWebViewPlatformReady") event is dispatched, the ajax requests can be intercept for sure.
  • iOS WKWebView
  • macOS WKWebView

Parameters - Officially Supported Platforms/Implementations:

  • ajaxRequest: all platforms

Use the PlatformInAppBrowserEvents.isMethodSupported method to check if this method is supported at runtime.

Implementation

@SupportedPlatforms(
  platforms: [
    AndroidPlatform(
      note:
          """In order to be able to listen this event, check the [InAppWebViewSettings.useShouldInterceptAjaxRequest] and [InAppWebViewSettings.useOnAjaxProgress] settings documentation.
Also, on Android that doesn't support the [WebViewFeature.DOCUMENT_START_SCRIPT], unlike iOS that has [WKUserScript](https://developer.apple.com/documentation/webkit/wkuserscript) that
can inject javascript code right after the document element is created but before any other content is loaded, in Android the javascript code
used to intercept ajax requests is loaded as soon as possible so it won't be instantaneous as iOS.
In that case, after the `window.addEventListener("flutterInAppWebViewPlatformReady")` event is dispatched, the ajax requests can be intercept for sure.""",
    ),
    IOSPlatform(),
    MacOSPlatform(),
  ],
)
FutureOr<AjaxRequestAction?>? onAjaxProgress(AjaxRequest ajaxRequest) {
  return null;
}