WebviewSettings class

Regroupe l'ensemble des réglages initiaux applicables à la Webview.

Passé via WebviewPlus(initialSettings: ...), transmis sous forme de Map à la vue native au moment de sa création. Certains réglages sont propres à une plateforme ; ils sont ignorés silencieusement sur les autres (voir la documentation de chaque champ).

Constructors

WebviewSettings({bool javaScriptEnabled = true, bool domStorageEnabled = true, bool allowFileAccess = true, bool allowContentAccess = true, bool supportZoom = true, bool builtInZoomControls = true, bool displayZoomControls = false, bool mediaPlaybackRequiresUserGesture = true, bool transparentBackground = false, Color? initialBackgroundColor, String? userAgent, bool isInspectable = false, bool disableContextMenu = false, bool disableLongPressContextMenuOnLinks = false, Color? selectionTextColor, Color? selectionHandleColor, AndroidPlatformViewType androidPlatformViewType = AndroidPlatformViewType.surfaceComposition, bool allowsBackForwardNavigationGestures = false, bool allowsLinkPreview = false, Set<DefaultContextMenuItem> disabledDefaultContextMenuItems = const <DefaultContextMenuItem>{}, bool disableLinkHoverPreview = true, bool disablePrinting = false, List<UserScript> initialUserScripts = const <UserScript>[], bool disableKeyboardResize = false, DesktopScrollbarTheme windowsScrollbarTheme = const DesktopScrollbarTheme(), bool cacheEnabled = true, bool incognito = false, String? applicationNameForUserAgent, int textZoom = 100, int? minimumFontSize, bool allowsInlineMediaPlayback = true, bool allowsPictureInPicture = true, bool javaScriptCanOpenWindowsAutomatically = false, bool geolocationEnabled = false, bool thirdPartyCookiesEnabled = true, bool forceDarkMode = false, OverScrollMode overScrollMode = OverScrollMode.ifContentScrolls, WebviewContentMode webviewContentMode = WebviewContentMode.recommended, bool bounces = true, int? initialScale, bool hideNativeScrollbars = false, bool safeBrowsingEnabled = true, bool allowMixedContent = false, bool allowFileAccessFromFileURLs = false, bool allowUniversalAccessFromFileURLs = false})
const

Properties

allowContentAccess bool
Autorise l'accès aux content providers via content:// (Android).
final
allowFileAccess bool
Autorise l'accès aux fichiers via file:// (Android).
final
allowFileAccessFromFileURLs bool
Autorise une page chargée depuis file:// à accéder, via XMLHttpRequest/fetch, à d'autres ressources file:// (par exemple un fichier HTML qui va chercher un .json ou une image à côté de lui sur le disque). iOS et macOS (WKPreferences clé privée allowFileAccessFromFileURLs, équivalent de l'attribut WebKit du même nom). Faux par défaut : WebKit bloque ces accès par sécurité, ce qui est la source la plus fréquente d'un fichier local qui "ne s'ouvre pas" (ressources relatives introuvables). Sans effet sur Android/Windows/Linux, où le chargement file:// fonctionne déjà nativement sans cette restriction (voir plutôt allowFileAccess sur Android).
final
allowMixedContent bool
Autorise le contenu mixte (ressources http:// chargées depuis une page https://). Android (MIXED_CONTENT_ALWAYS_ALLOW vs MIXED_CONTENT_COMPATIBILITY_MODE) et Linux/Windows (réglage équivalent du moteur). Faux par défaut (comportement le plus sûr).
final
allowsBackForwardNavigationGestures bool
Autorise les gestes de balayage pour naviguer précédent/suivant (iOS).
final
allowsInlineMediaPlayback bool
Autorise la lecture vidéo "inline" (dans la page) plutôt qu'en plein écran forcé. iOS uniquement (allowsInlineMediaPlayback). Vrai par défaut. Ignoré ailleurs : Android/Windows/Linux lisent déjà les médias inline par défaut, sans réglage équivalent nécessaire.
final
allowsLinkPreview bool
Autorise l'aperçu de lien façon "Peek & Pop" (iOS).
final
allowsPictureInPicture bool
Autorise le mode "picture in picture" pour les vidéos. iOS/macOS uniquement. Vrai par défaut.
final
allowUniversalAccessFromFileURLs bool
Version plus permissive de allowFileAccessFromFileURLs : autorise en plus une page file:// à faire des requêtes vers n'importe quelle origine (y compris http:///https://), pas seulement d'autres fichiers locaux. iOS et macOS (clé privée WKWebView allowUniversalAccessFromFileURLs). Faux par défaut. À n'activer que si vous chargez du contenu local de confiance (ex. un bundle HTML/JS embarqué dans l'app) qui a besoin d'appeler votre API distante — ce réglage désactive une protection de sécurité importante, ne l'activez jamais pour du contenu distant/non fiable. Implique allowFileAccessFromFileURLs (activé automatiquement côté natif si ce dernier est à true). Sans effet sur Android/Windows/Linux.
final
androidPlatformViewType AndroidPlatformViewType
Type de composition et rendu sur Android. Par défaut : AndroidPlatformViewType.surfaceComposition.
final
applicationNameForUserAgent String?
Ajouté au user-agent par défaut de la plateforme (généralement sous la forme <UA par défaut> <valeur>), sans écraser le user-agent complet (voir userAgent pour ça). Toutes plateformes.
final
bounces bool
Active l'effet de rebond ("bounce") en fin de défilement. iOS/macOS uniquement (UIScrollView.bounces/NSScrollView équivalent). Vrai par défaut.
final
builtInZoomControls bool
Affiche les contrôles de zoom natifs +/- (Android).
final
cacheEnabled bool
Active le cache HTTP standard (respect des en-têtes Cache-Control/ ETag). Android/Windows/Linux. Vrai par défaut. Sur iOS/macOS, piloté indirectement via incognito (WKWebView ne propose pas de réglage de cache indépendant du websiteDataStore).
final
disableContextMenu bool
Désactive entièrement le menu contextuel natif (sélection de texte, copier/coller, "ouvrir l'image", etc.) déclenché par un appui long.
final
disabledDefaultContextMenuItems Set<DefaultContextMenuItem>
Éléments par défaut du menu contextuel (copier / coller / tout sélectionner / couper) à désactiver individuellement.
final
disableKeyboardResize bool
Empêche la Webview de se redimensionner (rétrécir) lorsque le clavier virtuel apparaît. Android et iOS uniquement.
final
disableLinkHoverPreview bool
Masque la barre de statut affichant l'URL survolée en bas de la fenêtre (desktop uniquement, principalement Windows/Webview2). Vrai par défaut. Sans effet sur mobile, où cette barre n'existe pas.
final
Désactive uniquement le menu contextuel déclenché par un appui long sur un lien ou une image-lien. Sans effet si disableContextMenu vaut déjà true.
final
disablePrinting bool
Désactive l'impression déclenchée via le raccourci Ctrl+P (et, lorsque la plateforme le permet, via window.print()). Faux par défaut (impression autorisée).
final
displayZoomControls bool
Affiche les boutons de zoom à l'écran (Android). Sans effet si builtInZoomControls vaut false.
final
domStorageEnabled bool
Active/désactive localStorage/sessionStorage/IndexedDB (Android/iOS/macOS).
final
forceDarkMode bool
Force un rendu de page sombre même sur des sites qui n'implémentent pas prefers-color-scheme. Android (WebSettingsCompat, API 29+) et Windows (PreferredColorScheme WebView2). Faux par défaut : peut dégrader la lisibilité de certains sites mal supportés.
final
geolocationEnabled bool
Autorise l'API de géolocalisation web (navigator.geolocation). Toutes plateformes. Faux par défaut ; l'octroi effectif dépend aussi des permissions système/OS (à demander séparément côté Flutter).
final
hashCode int
The hash code for this object.
no setterinherited
hideNativeScrollbars bool
Masque entièrement les indicateurs de défilement natifs (le contenu reste défilable) :
final
incognito bool
Navigation "privée" : aucune donnée (cookies, cache, localStorage, historique) n'est persistée au-delà de la durée de vie de la Webview. Toutes plateformes, avec un niveau de garantie qui varie :
final
initialBackgroundColor Color?
Couleur d'arrière-plan par défaut du widget pendant son chargement ou si l'arrière-plan de la Webview est transparent.
final
initialScale int?
Échelle de zoom initiale, en pourcentage (100 = taille normale). Android uniquement (WebView.setInitialScale). null = laisse la page définir son propre zoom (via sa meta viewport, le cas échéant).
final
initialUserScripts List<UserScript>
Scripts JavaScript injectés automatiquement dans chaque page chargée (voir UserScript). Android, iOS, macOS.
final
isInspectable bool
Active l'inspection à distance via Chrome DevTools / Safari Web Inspector. À réserver au mode debug.
final
javaScriptCanOpenWindowsAutomatically bool
Autorise les pages à ouvrir de nouvelles fenêtres/popups via window.open() sans geste utilisateur préalable. Toutes plateformes. Faux par défaut (comportement le plus sûr).
final
javaScriptEnabled bool
Active/désactive l'exécution JavaScript (toutes plateformes).
final
mediaPlaybackRequiresUserGesture bool
Empêche la lecture automatique des médias sans geste utilisateur.
final
minimumFontSize int?
Taille de police minimale, en pixels CSS. Android (WebSettings.minimumFontSize) et iOS/macOS (16.0+, via WKWebpagePreferences/préférences de police). null = pas de minimum imposé.
final
overScrollMode OverScrollMode
Effet visuel en fin de défilement (glow Android / overscroll-behavior CSS best-effort sur Windows/Linux). Voir OverScrollMode.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
safeBrowsingEnabled bool
Active la vérification Safe Browsing (pages de phishing/malware connues). Android uniquement (WebSettings.setSafeBrowsingEnabled). Vrai par défaut.
final
selectionHandleColor Color?
final
selectionTextColor Color?
Couleur de surbrillance du texte sélectionné (et, si le système le permet, des poignées de sélection).
final
supportZoom bool
Autorise le pincement pour zoomer (toutes plateformes).
final
textZoom int
Zoom du texte, en pourcentage (100 = taille normale). Android (WebSettings.textZoom), Windows et Linux (zoom CSS équivalent). Sans effet sur iOS/macOS (WKWebView ne propose pas de réglage équivalent indépendant du zoom de page).
final
thirdPartyCookiesEnabled bool
Autorise les cookies tiers (iframes cross-origin, trackers...). Android uniquement (CookieManager.setAcceptThirdPartyCookies). Vrai par défaut (comportement historique d'Android WebView). Sur les autres plateformes, ce réglage est piloté par le moteur lui-même et n'est pas exposé de la même façon.
final
transparentBackground bool
Rend le fond de la Webview transparent (utile pour superposer du contenu Flutter derrière/au-dessus de la page).
final
userAgent String?
User-Agent personnalisé. null = valeur par défaut de la plateforme.
final
webviewContentMode WebviewContentMode
final
windowsScrollbarTheme DesktopScrollbarTheme
Configuration personnalisée des barres de défilement pour Windows.
final

Methods

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

Operators

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