Native browser embedding
NativeWebView
Embed the platform browser without shipping another Chromium runtime.
Overview
A cross-platform Avalonia WebView using each operating system’s browser engine, with embedded, GPU-surface, offscreen, dialog, authentication, snapshot, native context-menu, zoom, profile-storage, and diagnostics workflows.
NativeWebView normalizes browser hosting without normalizing away platform capabilities. A common control selects a registered backend, while platform packages bind WebView2, WKWebView, WebKitGTK, mobile views, or browser hosting and expose snapshots, status text, zoom, profiles, context menus, and render diagnostics where supported.
Native platform engines
Embedded and offscreen modes
JavaScript messaging and extensible native context menus
Snapshots, status text, zoom, profiles, and diagnostics
Built for
Where it fits.
- Avalonia apps embedding trusted web content
- OAuth and system-browser authentication flows
- Hybrid desktop tools that need low distribution weight
Compatibility & status
Control + dialog + auth
Control + auth
Control + auth
Unsupported
In the work
Real output,
not a mockup.

Architecture
Clear layers.
Replaceable seams.
Control
The Avalonia surface owns lifecycle, navigation, events, and render mode.
Core
Portable contracts cover backends, messaging, scripts, permissions, and navigation.
Platform
Each package binds the native browser engine and capability set.
Modes
Embedded, GPU-surface, and offscreen presentation fit different composition needs.
Operations
Snapshots, status text, zoom events, profiles, context menus, integrity metadata, and diagnostics expose native runtime behavior.
Quick start
From package
to first frame.
Choose the package workflow used by your repository, then start from the smallest working example. Replace VERSION with the current stable or prerelease version shown on NuGet.
dotnet add package NativeWebViewdotnet add package NativeWebView.Platform.Windows<PackageReference Include="NativeWebView" Version="VERSION" /><PackageVersion Include="NativeWebView" Version="VERSION" />NativeWebViewRuntime.EnsureCurrentPlatformRegistered();var backend = NativeWebViewRuntime.CreateBackend();var webView = new NativeWebView(backend);await webView.InitializeAsync();webView.Navigate(new Uri("https://example.com"));Package surface
Start focused.
Compose as needed.
Source, docs, samples, and releases
The repository is the source of truth.
Use the current documentation and samples, inspect changes, report issues, or support continued open-source maintenance.