InAppWebViewSettings
The InAppWebViewSettings
class represents all the WebView settings available.
accessibilityIgnoresInvertColors ↔ bool?
A Boolean value indicating whether the WebView ignores an accessibility request to invert its colors. The default value
is false
.
algorithmicDarkeningAllowed ↔ bool?
Control whether algorithmic darkening is allowed.
allowBackgroundAudioPlaying ↔ bool?
Set to true
to allow audio playing when the app goes in background or the screen is locked or another app is opened.
However, there will be no controls in the notification bar or on the lockscreen. Also, make sure to not
call PlatformInAppWebViewController.pause,
otherwise it will stop audio playing. The default value is false
.
allowContentAccess ↔ bool?
Enables or disables content URL access within WebView. Content URL access allows WebView to load content from a content
provider installed in the system. The default value is true
.
allowFileAccess ↔ bool?
Enables or disables file access within WebView. Note that this enables or disables file system access only. Assets and
resources are still accessible using file:///android_asset
and file:///android_res
. The default value is true
.
allowFileAccessFromFileURLs ↔ bool?
Sets whether cross-origin requests in the context of a file scheme URL should be allowed to access content from other
file scheme URLs. Note that some accesses such as image HTML elements don't follow same-origin rules and aren't affected
by this setting.
allowingReadAccessTo ↔ WebUri?
Used in combination
with PlatformWebViewCreationParams.initialUrlRequest
or PlatformWebViewCreationParams.initialData (
using the file://
scheme), it represents the URL from which to read the web content. This URL must be a file-based
URL (using the file://
scheme). Specify the same value as
the URLRequest.url if you are using it with
the PlatformWebViewCreationParams.initialUrlRequest
parameter or
the InAppWebViewInitialData.baseUrl
if you are using it with
the PlatformWebViewCreationParams.initialData
parameter to prevent WebView from reading any other content. Specify a directory to give WebView permission to read
additional files in the specified directory.
allowsAirPlayForMediaPlayback ↔ bool?
Set to true
to allow AirPlay. The default value is true
.
allowsBackForwardNavigationGestures ↔ bool?
Set to true
to allow the horizontal swipe gestures trigger back-forward list navigations. The default value is true
.
allowsInlineMediaPlayback ↔ bool?
Set to true
to allow HTML5 media playback to appear inline within the screen layout, using browser-supplied controls
rather than native controls. For this to work, add the webkit-playsinline
attribute to any <video>
elements. The
default value is false
.
allowsLinkPreview ↔ bool?
Set to true
to allow that pressing on a link displays a preview of the destination for the link. The default value
is true
.
allowsPictureInPictureMediaPlayback ↔ bool?
Set to true
to allow HTML5 videos play picture-in-picture. The default value is true
.
allowUniversalAccessFromFileURLs ↔ bool?
Sets whether cross-origin requests in the context of a file scheme URL should be allowed to access content from any
origin. This includes access to content from other file scheme URLs or web contexts. Note that some access such as image
HTML elements doesn't follow same-origin rules and isn't affected by this setting.
alwaysBounceHorizontal ↔ bool?
A Boolean value that determines whether bouncing always occurs when horizontal scrolling reaches the end of the content
view. If this property is set to true
and InAppWebViewSettings.disallowOverScroll
is false
, horizontal dragging is allowed even if the content is smaller than the bounds of the scroll view. The
default value is false
.
alwaysBounceVertical ↔ bool?
A Boolean value that determines whether bouncing always occurs when vertical scrolling reaches the end of the content.
If this property is set to true
and InAppWebViewSettings.disallowOverScroll
is false
, vertical dragging is allowed even if the content is smaller than the bounds of the scroll view. The default
value is false
.
appCachePath ↔ String?
Sets the path to the Application Caches files. In order for the Application Caches API to be enabled, this option must
be set a path to which the application can write. This option is used one time: repeated calls are ignored.
applePayAPIEnabled ↔ bool?
Set to true
to enable Apple Pay API for the WebView
at its first page load or on the next page load (
using PlatformInAppWebViewController.setOptions).
The default value is false
.
applicationNameForUserAgent ↔ String?
Append to the existing user-agent. Setting userAgent will override this.
automaticallyAdjustsScrollIndicatorInsets ↔ bool?
Configures whether the scroll indicator insets are automatically adjusted by the system. The default value is false
.
blockNetworkImage ↔ bool?
Sets whether the WebView should not load image resources from the network (resources accessed via http and https URI
schemes). The default value is false
.
blockNetworkLoads ↔ bool?
Sets whether the WebView should not load resources from the network. The default value is false
.
builtInZoomControls ↔ bool?
Set to true
if the WebView should use its built-in zoom mechanisms. The default value is true
.
cacheEnabled ↔ bool?
Sets whether WebView should use browser caching. The default value is true
.
cacheMode ↔ CacheMode?
Overrides the way the cache is used. The way the cache is used is based on the navigation type. For a normal page load,
the cache is checked and content is re-validated as needed. When navigating back, content is not revalidated, instead
the content is just retrieved from the cache. The default value
is CacheMode.LOAD_DEFAULT.
clearCache ↔ bool?
Use PlatformInAppWebViewController.clearAllCache
instead.
clearSessionCache ↔ bool?
Use PlatformCookieManager.removeSessionCookies
instead.
contentBlockers ↔ List<ContentBlocker>?
List of ContentBlocker that are a set of
rules used to block content in the browser window.
contentInsetAdjustmentBehavior ↔ ScrollViewContentInsetAdjustmentBehavior?
Configures how safe area insets are added to the adjusted content inset. The default value
is ScrollViewContentInsetAdjustmentBehavior.NEVER.
cursiveFontFamily ↔ String?
Sets the cursive font family name. The default value is "cursive"
.
databaseEnabled ↔ bool?
Set to true
if you want the database storage API is enabled. The default value is true
.
dataDetectorTypes ↔ List<DataDetectorTypes>?
Specifying a dataDetectoryTypes value adds interactivity to web content that matches the value. For example, Safari adds
a link to “apple.com” in the text “Visit apple.com” if the dataDetectorTypes property is set
to DataDetectorTypes.LINK.
The default value
is DataDetectorTypes.NONE.
decelerationRate ↔ ScrollViewDecelerationRate?
A ScrollViewDecelerationRate
value that determines the rate of deceleration after the user lifts their finger. The default value
is ScrollViewDecelerationRate.NORMAL.
defaultFixedFontSize ↔ int?
Sets the default fixed font size. The default value is 16
.
defaultFontSize ↔ int?
Sets the default font size. The default value is 16
.
defaultTextEncodingName ↔ String?
Sets the default text encoding name to use when decoding html pages. The default value is "UTF-8"
.
defaultVideoPoster ↔ Uint8List?
When not playing, video elements are represented by a 'poster' image. The image to use can be specified by the poster
attribute of the video tag in HTML. If the attribute is absent, then a default poster will be used. This property allows
the WebView to provide that default image.
disableContextMenu ↔ bool?
Set to true
to disable context menu. The default value is false
.
disabledActionModeMenuItems ↔ ActionModeMenuItem?
Disables the action mode menu items according to menuItems flag.
disableDefaultErrorPage ↔ bool?
Sets whether the default Android WebView’s internal error page should be suppressed or displayed for bad
navigations. true
means suppressed (not shown), false
means it will be displayed. The default value is false
.
disableHorizontalScroll ↔ bool?
Set to true
to disable horizontal scroll. The default value is false
.
disableInputAccessoryView ↔ bool?
Set to true
to disable
the inputAccessoryView above
system keyboard. The default value is false
.
disableLongPressContextMenuOnLinks ↔ bool?
Set to true
to disable the context menu (copy, select, etc.) that is shown when the user emits a long press event on a
HTML link. This is implemented using also JavaScript, so it must be enabled or it won't work. The default value
is false
.
disableVerticalScroll ↔ bool?
Set to true
to disable vertical scroll. The default value is false
.
disallowOverScroll ↔ bool?
Set to true
to disable the bouncing of the WebView when the scrolling has reached an edge of the content. The default
value is false
.
displayZoomControls ↔ bool?
Set to true
if the WebView should display on-screen zoom controls when using the built-in zoom mechanisms. The default
value is false
.
domStorageEnabled ↔ bool?
Set to true
if you want the DOM storage API is enabled. The default value is true
.
enableViewportScale ↔ bool?
Set to true
to allow a viewport meta tag to either disable or restrict the range of user scaling. The default value
is false
.
enterpriseAuthenticationAppLinkPolicyEnabled ↔ bool?
Sets whether EnterpriseAuthenticationAppLinkPolicy if set by admin is allowed to have any effect on WebView.
fantasyFontFamily ↔ String?
Sets the fantasy font family name. The default value is "fantasy"
.
fixedFontFamily ↔ String?
Sets the fixed font family name. The default value is "monospace"
.
forceDark ↔ ForceDark?
Set the force dark mode for this WebView. The default value
is ForceDark.OFF.
forceDarkStrategy ↔ ForceDarkStrategy?
Sets whether Geolocation API is enabled. The default value is true
. Set how WebView content should be darkened. The
default value
is ForceDarkStrategy.PREFER_WEB_THEME_OVER_USER_AGENT_DARKENING.
geolocationEnabled ↔ bool?
Sets whether Geolocation is enabled. The default is true
.
hardwareAcceleration ↔ bool?
Boolean value to enable Hardware Acceleration in the WebView. The default value is true
.
horizontalScrollBarEnabled ↔ bool?
Define whether the horizontal scrollbar should be drawn or not. The default value is true
.
horizontalScrollbarThumbColor ↔ Color?
Sets the horizontal scrollbar thumb color.
horizontalScrollbarTrackColor ↔ Color?
Sets the horizontal scrollbar track color.
iframeAllow ↔ String?
Specifies a feature policy for the <iframe>
. The policy defines what features are available to the <iframe>
based on
the origin of the request (e.g. access to the microphone, camera, battery, web-share API, etc.).
iframeAllowFullscreen ↔ bool?
Set to true if the <iframe>
can activate fullscreen mode by calling the requestFullscreen()
method.
iframeCsp ↔ String?
A Content Security Policy enforced for the embedded resource.
iframeName ↔ String?
A string that reflects the name
HTML attribute, containing a name by which to refer to the frame.
iframeReferrerPolicy ↔ ReferrerPolicy?
A string that reflects the referrerpolicy
HTML attribute indicating which referrer to use when fetching the linked
resource.
iframeSandbox ↔ Set<Sandbox>?
Applies extra restrictions to the content in the frame.
ignoresViewportScaleLimits ↔ bool?
Set to true
if you want that the WebView should always allow scaling of the webpage, regardless of the author's
intent. The ignoresViewportScaleLimits property overrides the user-scalable
HTML property in a webpage. The default
value is false
.
incognito ↔ bool?
Set to true
to open a browser window with incognito mode. The default value is false
.
initialScale ↔ int?
Sets the initial scale for this WebView. 0 means default. The behavior for the default scale depends on the state
of useWideViewPort
and loadWithOverviewMode.
If the content fits into the WebView control by width, then the zoom is set to 100%. For wide content, the behavior
depends on the state
of loadWithOverviewMode.
If its value is true, the content will be zoomed out to be fit by width into the WebView control, otherwise not. If
initial scale is greater than 0, WebView starts with this value as initial scale. Please note that unlike the scale
properties in the viewport meta tag, this method doesn't take the screen density into account. The default is 0
.
interceptOnlyAsyncAjaxRequests ↔ bool?
Set to false
to be able to listen to also sync XMLHttpRequest
s at
the PlatformWebViewCreationParams.shouldInterceptAjaxRequest
event.
isDirectionalLockEnabled ↔ bool?
A Boolean value that determines whether scrolling is disabled in a particular direction. If this property is false
,
scrolling is permitted in both horizontal and vertical directions. If this property is true
and the user begins
dragging in one general direction (horizontally or vertically), the scroll view disables scrolling in the other
direction. If the drag direction is diagonal, then scrolling will not be locked and the user can drag in any direction
until the drag completes. The default value is false
.
isElementFullscreenEnabled ↔ bool?
Sets whether fullscreen API is enabled or not.
isFindInteractionEnabled ↔ bool?
Sets whether the web view's built-in find interaction native UI is enabled or not.
isFraudulentWebsiteWarningEnabled ↔ bool?
A Boolean value indicating whether warnings should be shown for suspected fraudulent content such as phishing or
malware. According to the official documentation, this feature is currently available in the following region: China.
The default value is true
.
isInspectable ↔ bool?
Controls whether this WebView is inspectable in Web Inspector.
isPagingEnabled ↔ bool?
A Boolean value that determines whether paging is enabled for the scroll view. If the value of this property is true,
the scroll view stops on multiples of the scroll view’s bounds when the user scrolls. The default value is false
.
isSiteSpecificQuirksModeEnabled ↔ bool?
A Boolean value indicating whether WebKit will apply built-in workarounds (quirks) to improve compatibility with certain
known websites. You can disable site-specific quirks to help test your website without these workarounds. The default
value is true
.
isTextInteractionEnabled ↔ bool?
A Boolean value indicating whether text interaction is enabled or not. The default value is true
.
javaScriptCanOpenWindowsAutomatically ↔ bool?
Set to true
to allow JavaScript open windows without user interaction. The default value is false
.
javaScriptEnabled ↔ bool?
Set to true
to enable JavaScript. The default value is true
.
layoutAlgorithm ↔ LayoutAlgorithm?
Sets the underlying layout algorithm. This will cause a re-layout of the WebView.
limitsNavigationsToAppBoundDomains ↔ bool?
A Boolean value that indicates whether the web view limits navigation to pages within the app’s domain.
Check App-Bound Domains for more details. The default value
is false
.
loadsImagesAutomatically ↔ bool?
Sets whether the WebView should load image resources. Note that this method controls loading of all images, including
those embedded using the data URI scheme. Note that if the value of this setting is changed from false to true, all
images resources referenced by content currently displayed by the WebView are loaded automatically. The default value
is true
.
loadWithOverviewMode ↔ bool?
Sets whether the WebView loads pages in overview mode, that is, zooms out the content to fit on screen by width. This
setting is taken into account when the content width is greater than the width of the WebView control, for example,
when useWideViewPort
is enabled. The default value is false
.
maximumViewportInset ↔ EdgeInsets?
Set maximum viewport inset to the largest inset a webpage may experience in your app's maximally expanded UI
configuration. Values must be either zero or positive. It must be larger
than minimumViewportInset.
maximumZoomScale ↔ double?
A floating-point value that specifies the maximum scale factor that can be applied to the scroll view's content. This
value determines how large the content can be scaled. It must be greater than the minimum zoom scale for zooming to be
enabled. The default value is 1.0
.
mediaPlaybackRequiresUserGesture ↔ bool?
Set to true
to prevent HTML5 audio or video from autoplaying. The default value is true
.
mediaType ↔ String?
The media type for the contents of the web view. When the value of this property is null
, the web view derives the
current media type from the CSS media property of its content. If you assign a value other than null
to this property,
the web view uses the value you provide instead. The default value of this property is null
.
minimumFontSize ↔ int?
Sets the minimum font size. The default value is 8
for Android, 0
for iOS.
minimumLogicalFontSize ↔ int?
Sets the minimum logical font size. The default is 8
.
minimumViewportInset ↔ EdgeInsets?
Set minimum viewport inset to the smallest inset a webpage may experience in your app's maximally collapsed UI
configuration. Values must be either zero or positive. It must be smaller
than maximumViewportInset.
minimumZoomScale ↔ double?
A floating-point value that specifies the minimum scale factor that can be applied to the scroll view's content. This
value determines how small the content can be scaled. The default value is 1.0
.
mixedContentMode ↔ MixedContentMode?
Configures the WebView's behavior when a secure origin attempts to load a resource from an insecure origin.
needInitialFocus ↔ bool?
Tells the WebView whether it needs to set a node. The default value is true
.
networkAvailable ↔ bool?
Informs WebView of the network state. This is used to set the JavaScript property window.navigator.isOnline
and
generates the online/offline event as specified in HTML5, sec. 5.7.7.
offscreenPreRaster ↔ bool?
Sets whether this WebView should raster tiles when it is offscreen but attached to a window. Turning this on can avoid
rendering artifacts when animating an offscreen WebView on-screen. Offscreen WebViews in this mode use more memory. The
default value is false
.
overScrollMode ↔ OverScrollMode?
Sets the WebView's over-scroll mode. Setting the over-scroll mode of a WebView will have an effect only if the WebView
is capable of scrolling. The default value
is OverScrollMode.IF_CONTENT_SCROLLS.
pageZoom ↔ double?
The scale factor by which the web view scales content relative to its bounds. The default value of this property
is 1.0
, which displays the content without any scaling. Changing the value of this property is equivalent to setting
the CSS zoom
property on all page content.
preferredContentMode ↔ UserPreferredContentMode?
Sets the content mode that the WebView needs to use when loading and rendering a webpage. The default value
is UserPreferredContentMode.RECOMMENDED.
regexToCancelSubFramesLoading ↔ String?
Regular expression used
by PlatformWebViewCreationParams.shouldOverrideUrlLoading
event to cancel navigation requests for frames that are not the main frame. If the url request of a subframe matches the
regular expression, then the request of that subframe is canceled.
rendererPriorityPolicy ↔ RendererPriorityPolicy?
Sets the renderer priority policy for this WebView.
requestedWithHeaderOriginAllowList ↔ Set<String>?
Set an allow-list of origins to receive the X-Requested-With HTTP header from the WebView owning the
passed InAppWebViewSettings.
resourceCustomSchemes ↔ List<String>?
List of custom schemes that the WebView must handle. Use
the PlatformWebViewCreationParams.onLoadResourceWithCustomScheme
event to intercept resource requests with custom scheme.
safeBrowsingEnabled ↔ bool?
Sets whether Safe Browsing is enabled. Safe Browsing allows WebView to protect against malware and phishing attacks by
verifying the links. Safe Browsing is enabled by default for devices which support it.
sansSerifFontFamily ↔ String?
Sets the sans-serif font family name. The default value is "sans-serif"
.
saveFormData ↔ bool?
Sets whether the WebView should save form data. In Android O, the platform has implemented a fully functional Autofill
feature to store form data. Therefore, the Webview form data save feature is disabled. Note that the feature will
continue to be supported on older versions of Android as before. The default value is true
.
scrollBarDefaultDelayBeforeFade ↔ int?
Defines the delay in milliseconds that a scrollbar waits before fade out.
scrollBarFadeDuration ↔ int?
Defines the scrollbar fade duration in milliseconds.
scrollbarFadingEnabled ↔ bool?
Defines whether scrollbars will fade when the view is not scrolling. The default value is true
.
scrollBarStyle ↔ ScrollBarStyle?
Specifies the style of the scrollbars. The scrollbars can be overlaid or inset. When inset, they add to the padding of
the view. And the scrollbars can be drawn inside the padding area or on the edge of the view. For example, if a view has
a background drawable and you want to draw the scrollbars inside the padding specified by the drawable, you can use
SCROLLBARS_INSIDE_OVERLAY or SCROLLBARS_INSIDE_INSET. If you want them to appear at the edge of the view, ignoring
the padding, then you can use SCROLLBARS_OUTSIDE_OVERLAY or SCROLLBARS_OUTSIDE_INSET. The default value
is ScrollBarStyle.SCROLLBARS_INSIDE_OVERLAY.
scrollsToTop ↔ bool?
A Boolean value that controls whether the scroll-to-top gesture is enabled. The scroll-to-top gesture is a tap on the
status bar. When a user makes this gesture, the system asks the scroll view closest to the status bar to scroll to the
top. The default value is true
.
selectionGranularity ↔ SelectionGranularity?
The level of granularity with which the user can interactively select content in the web view. The default value
is SelectionGranularity.DYNAMIC.
serifFontFamily ↔ String?
Sets the serif font family name. The default value is "sans-serif"
.
sharedCookiesEnabled ↔ bool?
Set true
if shared cookies from HTTPCookieStorage.shared
should used for every load request in the WebView. The
default value is false
.
shouldPrintBackgrounds ↔ bool?
A Boolean value that indicates whether to include any background color or graphics when printing content.
standardFontFamily ↔ String?
Sets the standard font family name. The default value is "sans-serif"
.
supportMultipleWindows ↔ bool?
Sets whether the WebView supports multiple windows. If set
to true
, PlatformWebViewCreationParams.onCreateWindow
event must be implemented by the host application. The default value is false
.
supportZoom ↔ bool?
Set to false
if the WebView should not support zooming using its on-screen zoom controls and gestures. The default
value is true
.
suppressesIncrementalRendering ↔ bool?
Set to true
if you want the WebView suppresses content rendering until it is fully loaded into memory. The default
value is false
.
textZoom ↔ int?
Sets the text zoom of the page in percent. The default value is 100
.
thirdPartyCookiesEnabled ↔ bool?
Boolean value to enable third party cookies in the WebView. Used on Android Lollipop and above only as third party
cookies are enabled by default on Android Kitkat and below and on iOS. The default value is true
.
transparentBackground ↔ bool?
Set to true
to make the background of the WebView transparent. If your app has a dark theme, this can prevent a white
flash on initialization. The default value is false
.
underPageBackgroundColor ↔ Color?
The color the web view displays behind the active page, visible when the user scrolls beyond the bounds of the page.
upgradeKnownHostsToHTTPS ↔ bool?
A Boolean value indicating whether HTTP requests to servers known to support HTTPS should be automatically upgraded to
HTTPS requests. The default value is true
.
useHybridComposition ↔ bool?
Set to false
to disable Flutter Hybrid Composition. The default value is true
. Hybrid Composition is supported
starting with Flutter v1.20+.
useOnDownloadStart ↔ bool?
Set to true
to be able to listen at
the PlatformWebViewCreationParams.onDownloadStartRequest
event.
useOnLoadResource ↔ bool?
Set to true
to be able to listen at
the PlatformWebViewCreationParams.onLoadResource
event.
useOnNavigationResponse ↔ bool?
Set to true
to be able to listen to
the PlatformWebViewCreationParams.onNavigationResponse
event.
useOnRenderProcessGone ↔ bool?
Set to true
to be able to listen at
the PlatformWebViewCreationParams.onRenderProcessGone
event.
userAgent ↔ String?
Sets the user-agent for the WebView.
useShouldInterceptAjaxRequest ↔ bool?
Set to true
to be able to listen at
the PlatformWebViewCreationParams.shouldInterceptAjaxRequest
event.
useShouldInterceptFetchRequest ↔ bool?
Set to true
to be able to listen at
the PlatformWebViewCreationParams.shouldInterceptFetchRequest
event.
useShouldInterceptRequest ↔ bool?
Set to true
to be able to listen at
the PlatformWebViewCreationParams.shouldInterceptRequest
event.
useShouldOverrideUrlLoading ↔ bool?
Set to true
to be able to listen at
the PlatformWebViewCreationParams.shouldOverrideUrlLoading
event.
useWideViewPort ↔ bool?
Set to true
if the WebView should enable support for the "viewport" HTML meta tag or should use a wide viewport. When
the value of the setting is false, the layout width is always set to the width of the WebView control in
device-independent (CSS) pixels. When the value is true and the page contains the viewport meta tag, the value of the
width specified in the tag is used. If the page does not contain the tag or does not provide a width, then a wide
viewport will be used. The default value is true
.
verticalScrollBarEnabled ↔ bool?
Define whether the vertical scrollbar should be drawn or not. The default value is true
.
verticalScrollbarPosition ↔ VerticalScrollbarPosition?
Sets the position of the vertical scroll bar. The default value
is VerticalScrollbarPosition.SCROLLBAR_POSITION_DEFAULT.
verticalScrollbarThumbColor ↔ Color?
Sets the vertical scrollbar thumb color.
verticalScrollbarTrackColor ↔ Color?
Sets the vertical scrollbar track color.
webViewAssetLoader ↔ WebViewAssetLoader?
Use a WebViewAssetLoader instance to
load local files including application's static assets and resources using http(s):// URLs. Loading local files using
web-like URLs instead of file://
is desirable as it is compatible with the Same-Origin policy.