Expand description
Rust bindings for WebView2:
The Microsoft Edge WebView2 control enables you to embed web technologies (HTML, CSS, and JavaScript) in your native applications. The WebView2 control uses Microsoft Edge (Chromium) as the rendering engine to display the web content in native applications. With WebView2, you may embed web code in different parts of your native application, or build the entire native application within a single WebView. For information on how to start building a WebView2 application, see Get Started.
§API
The webview2
crate contains high-level, idiomatic wrappers for the raw COM
APIs, which can be found in the webview2-sys
crate.
The API mapping should be quite straightforward.
The CreateCoreWebView2EnvironmentWithDetails
function does not have a direct
equivalent. It is replaced with a nicer EnvironmentBuilder
API. The
GetAvailableCoreWebView2BrowserVersionString
and CompareBrowserVersions
functions are also exposed through the builder.
§Runtime
The Edge browser from beta, dev or canary channels (>= 86.0.622.0) or the
Evergreen WebView2
Runtime
need to be installed for this to actually work. Or the
build
method will return an
error.
§WebView2Loader
A binary library WebView2Loader
from the WebView2 SDK need to be used, either
the DLL WebView2Loader.dll
or the static library WebView2LoaderStatic.lib
.
This brings some complexities:
-
When using the gnu toolchain, the static library does not seem to work so the
WebView2Loader.dll
DLL is used. You need to make sure that the DLL can be loaded at runtime, e.g. by putting it alongside the built exe files. -
When using the msvc toolchain, the static library is used. Make sure you have the v142 toolset (or visual studio 2019), because the static library seem to be built with visual studio 2019 and could not be correctly linked by earlier versions of the visual studio. See C++ binary compatibility between Visual Studio 2015, 2017, and 2019.
§Examples
See the examples
directory, especially the heavily commented win32
example.
Macros§
- callback
- Returns a pointer that implements the COM callback interface with the specified closure. Inspired by C++ Microsoft::WRT::Callback.
Structs§
- Accelerator
KeyPressed Event Args - Wrapper for
ICoreWebView2AcceleratorKeyPressedEventArgs
. - Composition
Controller - Wrapper for
ICoreWebView2CompositionController
. - Composition
Controller2 - Wrapper for
ICoreWebView2CompositionController2
. - Composition
Controller Interop - Wrapper for
ICoreWebView2CompositionControllerInterop
. - Content
Loading Event Args - Wrapper for
ICoreWebView2ContentLoadingEventArgs
. - Controller
- Wrapper for
ICoreWebView2Controller
. - Controller2
- Wrapper for
ICoreWebView2Controller2
. - Controller3
- Wrapper for
ICoreWebView2Controller3
. - Cookie
- Wrapper for
ICoreWebView2Cookie
. - Cookie
List - Wrapper for
ICoreWebView2CookieList
. - Cookie
Manager - Wrapper for
ICoreWebView2CookieManager
. - DOMContent
Loaded Event Args - Wrapper for
ICoreWebView2DOMContentLoadedEventArgs
. - Deferral
- Wrapper for
ICoreWebView2Deferral
. - DevTools
Protocol Event Received Event Args - Wrapper for
ICoreWebView2DevToolsProtocolEventReceivedEventArgs
. - DevTools
Protocol Event Receiver - Wrapper for
ICoreWebView2DevToolsProtocolEventReceiver
. - Environment
- Wrapper for
ICoreWebView2Environment
. - Environment2
- Wrapper for
ICoreWebView2Environment2
. - Environment3
- Wrapper for
ICoreWebView2Environment3
. - Environment4
- Wrapper for
ICoreWebView2Environment4
. - Environment
Builder - A builder for calling the
CreateCoreWebView2EnvironmentWithOptions
function. - Environment
Interop - Wrapper for
ICoreWebView2EnvironmentInterop
. - Environment
Options - Wrapper for
ICoreWebView2EnvironmentOptions
. - Error
- WebView2 Error.
- Event
Registration Token - Represents a reference to a delegate that receives change notifications.
- Frame
Info - Wrapper for
ICoreWebView2FrameInfo
. - Frame
Info Collection - Wrapper for
ICoreWebView2FrameInfoCollection
. - Frame
Info Collection Iterator - Wrapper for
ICoreWebView2FrameInfoCollectionIterator
. - Http
Headers Collection Iterator - Wrapper for
ICoreWebView2HttpHeadersCollectionIterator
. - Http
Request Headers - Wrapper for
ICoreWebView2HttpRequestHeaders
. - Http
Response Headers - Wrapper for
ICoreWebView2HttpResponseHeaders
. - Interop
- Wrapper for
ICoreWebView2Interop
. - Move
Focus Requested Event Args - Wrapper for
ICoreWebView2MoveFocusRequestedEventArgs
. - Navigation
Completed Event Args - Wrapper for
ICoreWebView2NavigationCompletedEventArgs
. - Navigation
Starting Event Args - Wrapper for
ICoreWebView2NavigationStartingEventArgs
. - NewWindow
Requested Event Args - Wrapper for
ICoreWebView2NewWindowRequestedEventArgs
. - Permission
Requested Event Args - Wrapper for
ICoreWebView2PermissionRequestedEventArgs
. - Physical
KeyStatus - Contains the information packed into the
LPARAM
sent to a Win32 key event. For more information aboutWM_KEYDOWN
, navigate to [WM_KEYDOWN message][WindowsWin32InputdevWmKeydown]. - Pointer
Info - Wrapper for
ICoreWebView2PointerInfo
. - Process
Failed Event Args - Wrapper for
ICoreWebView2ProcessFailedEventArgs
. - Process
Failed Event Args2 - Wrapper for
ICoreWebView2ProcessFailedEventArgs2
. - Script
Dialog Opening Event Args - Wrapper for
ICoreWebView2ScriptDialogOpeningEventArgs
. - Settings
- Wrapper for
ICoreWebView2Settings
. - Source
Changed Event Args - Wrapper for
ICoreWebView2SourceChangedEventArgs
. - Stream
- Wrapper for
IStream
. - WebMessage
Received Event Args - Wrapper for
ICoreWebView2WebMessageReceivedEventArgs
. - WebResource
Request - Wrapper for
ICoreWebView2WebResourceRequest
. - WebResource
Requested Event Args - Wrapper for
ICoreWebView2WebResourceRequestedEventArgs
. - WebResource
Response - Wrapper for
ICoreWebView2WebResourceResponse
. - WebResource
Response Received Event Args - Wrapper for
ICoreWebView2WebResourceResponseReceivedEventArgs
. - WebResource
Response View - Wrapper for
ICoreWebView2WebResourceResponseView
. - WebView
- Wrapper for
ICoreWebView2
. - WebView_
2 - Wrapper for
ICoreWebView2_2
. - WebView_
3 - Wrapper for
ICoreWebView2_3
. - Window
Features - Wrapper for
ICoreWebView2WindowFeatures
.
Enums§
- Capture
Preview Image Format - Specifies the image format for the
ICoreWebView2::CapturePreview
method. - KeyEvent
Kind - Specifies the key event type that triggered an
AcceleratorKeyPressed
event. - Move
Focus Reason - Specifies the reason for moving focus.
- Permission
Kind - Indicates the type of a permission request.
- Permission
State - Specifies the response to a permission request.
- Process
Failed Kind - Specifies the process failure type used in the
ICoreWebView2ProcessFailedEventHandler
interface. The values in this enum make reference to the process kinds in the Chromium architecture. For more information about what these processes are and what they do, see Browser Architecture - Inside look at modern web browser. - Script
Dialog Kind - Specifies the JavaScript dialog type used in the
ICoreWebView2ScriptDialogOpeningEventHandler
interface. - WebError
Status - Indicates the error status values for web navigations.
- WebResource
Context - Specifies the web resource request contexts.
Functions§
- check_
hresult - Check a
HRESULT
, if it isSUCCEEDED
, returnOk(())
. Otherwide return an error containing theHRESULT
. - compare_
browser_ versions - get_
available_ browser_ version_ string