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 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, viaXMLHttpRequest/fetch, à d'autres ressourcesfile://(par exemple un fichier HTML qui va chercher un.jsonou une image à côté de lui sur le disque). iOS et macOS (WKPreferencesclé privéeallowFileAccessFromFileURLs, é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 chargementfile://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 pagehttps://). Android (MIXED_CONTENT_ALWAYS_ALLOWvsMIXED_CONTENT_COMPATIBILITY_MODE) et Linux/Windows (réglage équivalent du moteur). Faux par défaut (comportement le plus sûr).final -
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 comprishttp:///https://), pas seulement d'autres fichiers locaux. iOS et macOS (clé privéeWKWebViewallowUniversalAccessFromFileURLs). 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 duwebsiteDataStore).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
- disableLongPressContextMenuOnLinks → bool
-
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 (PreferredColorSchemeWebView2). 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+, viaWKWebpagePreferences/préférences de police).null= pas de minimum imposé.final - overScrollMode → OverScrollMode
-
Effet visuel en fin de défilement (glow Android /
overscroll-behaviorCSS 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