webview_flutter_windows
A WebView2-powered webview for Flutter on Windows with seamless composition, keyboard focus integration, and a typed event API.
1.1.1
3.0K downloads/mo
#4674 most downloaded on pub.dev
omar-hanafy/webview_flutter_windows
What this package is like to depend on
Last release 1 months ago
18 Jul 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 3 of 3 stable releases
Nothing withdrawn
no release was ever pulled
2 months old
5 releases · first in 2026
5 releases in the last 12 months
see the full history below
Release timeline
5 releases · Jun 2026 to Jul 2026Releases
latest 5-
1.1.118 Jul 2026Release notes
Open source →What's Changed
- Add Claude Code and Codex agent plugin; release 1.1.1 by @omar-hanafy in #6
Full Changelog: webview_flutter_windows-v1.1.0...webview_flutter_windows-v1.1.1
Release notes
Open source →- Add AI coding-assistant support for Claude Code and OpenAI Codex: an agent
plugin installable from the repository marketplace, with five
package-specific skills covering integration, the JavaScript bridge and
local content, troubleshooting, channel-mocked testing, and migration from
webview_windows0.x. See the README's "AI coding-assistant support" section (#6). - No changes to the package's Dart or native code.
-
1.1.018 Jul 2026Release notes
Open source →What's Changed
- Add runtime control for default context menus by @bradleyburgesscc in #3
- Add contributor standards and harden release automation by @omar-hanafy in #4
- Release webview_flutter_windows 1.1.0 by @omar-hanafy in #5
New Contributors
- @bradleyburgesscc made their first contribution in #3
Full Changelog: webview_flutter_windows-v1.0.0...webview_flutter_windows-v1.1.0
Release notes
Open source →- Add
WebviewController.setDefaultContextMenusEnabled()to enable or disable WebView2's default context menus for subsequent top-level navigations; menus remain disabled by default (#3).
-
1.0.020 Jun 2026Release notes
Open source →What's Changed
- Prepare webview_flutter_windows package release by @omar-hanafy in #1
Full Changelog: https://github.com/omar-hanafy/webview_flutter_windows/commits/webview_flutter_windows-v1.0.0
Release notes
Open source →First stable release of
webview_flutter_windows(omar-hanafy/webview_flutter_windows), a maintained fork/rebuild of upstreamwebview_windows0.4.0including all upstream changes up toed81bbe. This API is the maintained baseline going forward: any future breaking change will come with a major version bump.This release contains breaking changes. See the migration guide for step-by-step upgrade instructions.
Breaking changes
- Published under the new package name
webview_flutter_windows; migrate dependencies and imports fromwebview_windows. - Requires Dart 3.12+ / Flutter 3.44+.
- All
WebviewControllerevent streams are now broadcast streams: multiple listeners are allowed, and events emitted while nobody listens are dropped. WebErrorStatusvalues are renamed to lowerCamelCase (WebErrorStatusTimeout->WebErrorStatus.timeout); the underlying indexes are unchanged.- Calling controller methods before
initialize()completes now throws aStateErrorwith an actionable message instead of crashing in release builds. initialize()throws aStateErrorwhen called on a disposed controller, and completes with the underlying error on any failure (previously some failures left the controller,ready, anddispose()hanging forever).- The internal
getButtonhelper is no longer exported.
Window focus
Fixes the long-standing focus loss issue (jnschulze/flutter-webview-windows#230):
- Clicking a webview no longer deactivates the host window (gray title bar, dead keyboard shortcuts).
- Clicking Flutter UI outside a webview hands keyboard focus back to Flutter
automatically, and pressing
Tabpast the page's last focusable element moves focus back to Flutter instead of cycling inside the page forever. - Enforced invariant: while a Flutter text input owns Flutter focus, no
webview keeps native keyboard focus. A
TextFieldgaining focus while the page holds the keyboard - or any code path grabbing native focus while a text input is focused - results in focus being handed back to Flutter immediately, in both event orders. - New API:
WebviewController.focus(),WebviewController.releaseFocus(), theonFocusChangedstream, andhasNativeFocus.
New features
- Cookie management:
getCookies(),setCookie(), anddeleteCookies()with a typedWebviewCookiemodel (expiry, SameSite, secure, HTTP-only), alongside the existingclearCookies(). - Reference-counted environment lifecycle: the WebView2 environment is
released when the last controller is disposed, so
initializeEnvironment()can be called again - e.g. with a differentuserDataPath- without restarting the app. - Headless usage: a controller can be driven without a
Webviewwidget for background pages; the newsetSize()gives the invisible page real bounds so it performs layout.
Improvements
initialize()is re-entrant: concurrent calls join the in-flight attempt, and a failed attempt can be retried.dispose()is idempotent, safe in every lifecycle state, and closes all event streams.- Load-error statuses reported by a newer WebView2 runtime than this package
knows map to
WebErrorStatus.unknowninstead of throwing aRangeError. - The
Webviewwidget accepts akeyand resolves its device pixel ratio per view (multi-window safe). - Full dartdoc coverage of the public API.
Native fixes
- Fixed inverted success reporting for
addVirtualHostNameMapping/removeVirtualHostNameMapping(success was reported as failure). - Fixed
disposesilently leaking the native webview instance for texture ids that fit in 32 bits. - Fixed COM reference leaks and latent use-after-frees in touch pointer events, permission requests, environment creation, WinRT factory access, and native string getters.
- Non-ASCII
additionalArgumentsnow reach Chromium as proper UTF-8 instead of being mangled. - Malformed method channel arguments produce an error result instead of terminating the process, and all nullable native strings are converted null-safely.
- Webview creation failures are surfaced as errors instead of returning a silent, dead instance.
Toolchain
- WebView2 SDK
1.0.1210.39->1.0.3967.48, WIL1.0.220914.1->1.0.260126.7. - The plugin builds as C++23 and no longer forces a C++ language level onto the consuming app; the CMake minimum is 3.20.
- The NuGet bootstrap is SHA-256 verified and dependencies are installed at
configure time, so first builds no longer race the imported
.targets.
-
1.0.0-dev.220 Jun 2026 pre-releaseRelease notes
Open source →What's Changed
- Prepare webview_flutter_windows package release by @omar-hanafy in #1
- Release 1.0.0-dev.2 by @omar-hanafy in #2
New Contributors
- @omar-hanafy made their first contribution in #1
Full Changelog: https://github.com/omar-hanafy/webview_flutter_windows/commits/webview_flutter_windows-v1.0.0-dev.2
-
1.0.0-dev.120 Jun 2026 pre-releaseNothing published for this version