SWebView class

Inheritance
Available extensions

Constructors

SWebView({Key? key, String url = "https://flutter.dev", WebViewController? controller, SWebViewConfig config = const SWebViewConfig(), dynamic onError(String? error)?, VoidCallback? onLoaded, VoidCallback? onIframeBlocked, bool autoDetectFrameRestrictions = true, List<String> corsProxyUrls = const [], bool showToolbar = kIsWeb, bool showDebugLogs = false, bool ignorePointerEvents = false, ValueChanged<int>? onProgress, ValueChanged<Uri>? onPageStarted, ValueChanged<Uri>? onUrlChanged, ValueChanged<Uri>? onPageFinished, SWebViewNavigationRequestCallback? onNavigationRequest, ValueChanged<String>? onJavaScriptMessage})
const

Properties

autoDetectFrameRestrictions bool
Automatically detect X-Frame-Options and CSP restrictions (default: true on web) When true, SWebView will check headers and apply CORS proxy only if needed This eliminates the need to manually pass useCorsProxy parameter
final
config SWebViewConfig
Optional advanced typed config.
final
controller WebViewController?
Optional externally managed controller.
final
corsProxyUrls List<String>
List of CORS proxies to try in order (with fallback) Default is empty: falls back to config.corsProxyUrls.
final
hashCode int
The hash code for this object.
no setterinherited
ignorePointerEvents bool
When true, the embedded WebView ignores all pointer events. Default: false
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
onError → dynamic Function(String? error)?
Callback for load errors.
final
onIframeBlocked VoidCallback?
Callback when iframe is blocked (web platform only)
final
onJavaScriptMessage ValueChanged<String>?
Callback for JavaScript channel messages.
final
onLoaded VoidCallback?
Callback when page load succeeds.
final
onNavigationRequest SWebViewNavigationRequestCallback?
Callback to decide whether navigation is allowed.
final
onPageFinished ValueChanged<Uri>?
Callback when a page finishes loading.
final
onPageStarted ValueChanged<Uri>?
Callback when a page starts loading.
final
onProgress ValueChanged<int>?
Callback with page loading progress (0..100).
final
onUrlChanged ValueChanged<Uri>?
Callback when URL changes.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
showDebugLogs bool
When true, SWebView debug logs are shown in debug mode. Default: false
final
showToolbar bool
Show the toolbar with retry with proxy and open-in-new-tab buttons Default: true when on Web platform
final
url String
The URL to load in the WebView
final

Methods

addMaterialWidget() Material

Available on Widget, provided by the GenericExtensions extension

addTooltipWidget(String toolTip) Tooltip

Available on Widget, provided by the GenericExtensions extension

animate({Key? key, List<Effect>? effects, AnimateCallback? onInit, AnimateCallback? onPlay, AnimateCallback? onComplete, bool? autoPlay, Duration? delay, AnimationController? controller, Adapter? adapter, double? target, double? value}) → Animate

Available on Widget, provided by the AnimateWidgetExtensions extension

Wraps the target Widget in an Animate instance, and returns the instance for chaining calls. Ex. myWidget.animate() is equivalent to Animate(child: myWidget).
borderRadius([BorderRadiusGeometry? borderRadius]) Widget

Available on Widget, provided by the GenericExtensions extension

boxDecoration([BoxDecoration? boxDecoration]) Widget

Available on Widget, provided by the GenericExtensions extension

colorFilter([ColorFilter? colorFilter]) Widget

Available on Widget, provided by the GenericExtensions extension

set parent widget in center
createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<SWebView>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

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

Static Methods

getProxyCache() Map<String, bool>
Get a read-only copy of the current proxy cache Returns a map of URLs to whether they require a proxy Key: URL string, Value: bool (true = needs proxy)
isUrlInProxyCache(String url) bool
Check if a specific URL is in the proxy cache and requires a proxy Returns true if the URL is cached and requires a proxy, false otherwise
openInNewTab(String url, {bool addToProxyCacheForNextTime = true, bool showDebugLogs = false}) Future<void>
Static method to open a URL in a new browser tab Can be called from custom buttons stacked over the widget Web platform only - no-op on native platforms
removeFromCache(String url, {bool showDebugLogs = false}) Future<void>
Static method to remove a URL from the proxy cache Use this to remove a URL that was previously marked as requiring a proxy The next load attempt will try a direct connection without the proxy
retryWithProxy(String url, {bool showDebugLogs = false}) Future<void>
Static method to load a URL via CORS proxy Can be called from custom buttons stacked over the widget This will mark the URL for proxy usage and trigger a reload
tapTarget({required Widget child, Key? key}) Widget
A convenience widget that wraps any child with PointerInterceptor