Skip to main content
WebviewJS on Windows uses Microsoft’s WebView2 engine — a Chromium-based runtime supplied with current Windows and Microsoft Edge. WebviewJS does not bundle Chromium; the available WebView2 runtime must be installed on the machine.

Prerequisites

Windows 11 ships with the WebView2 runtime pre-installed. Windows 10 needs WebView2 supplied by a current Microsoft Edge installation or installed separately. WebviewJS does not install the runtime. You can pre-install it manually using the Evergreen bootstrapper from Microsoft.
Check the installed WebView2 version at runtime:

Supported architectures

Windows-specific creation options

Pass these fields in the BrowserWindowOptions object when calling app.createBrowserWindow(). They are silently ignored on other platforms.

Windows runtime methods

These methods are Windows-specific and safe to call on any platform — they return neutral values or do nothing outside Windows.

Progress bar

Integrate with the Windows taskbar progress indicator:
ProgressBarState values: None · Normal · Indeterminate · Paused · Error

IPC on Windows

On Windows, a file: page that calls window.ipc.postMessage() can abort because WebView2 treats the page source as a file: URI and the native workaround expects an HTTP request URI. Always load IPC-enabled pages through a custom protocol such as app:// — never via a file: URL. See the Custom Protocols guide for setup instructions.
On Windows the menu bar is attached to each window’s title bar following standard Win32 behaviour. Every window can carry its own independent menu or receive the application-level menu set via app.setMenu(). Set the global menu before creating windows; changing it later does not reattach the replacement to existing windows.
Listen for custom menu item clicks on the Application instance:

DPI and HiDPI scaling

Tao reads the monitor’s scale factor automatically and reports it via win.scaleFactor(). Use logical pixels when positioning child elements:
All values from window events (resize, move, mouse-move, etc.) arrive in physical pixels. Divide by win.scaleFactor() to convert to logical (CSS) pixels.