Crate webview2

Source
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§

AcceleratorKeyPressedEventArgs
Wrapper for ICoreWebView2AcceleratorKeyPressedEventArgs.
CompositionController
Wrapper for ICoreWebView2CompositionController.
CompositionController2
Wrapper for ICoreWebView2CompositionController2.
CompositionControllerInterop
Wrapper for ICoreWebView2CompositionControllerInterop.
ContentLoadingEventArgs
Wrapper for ICoreWebView2ContentLoadingEventArgs.
Controller
Wrapper for ICoreWebView2Controller.
Controller2
Wrapper for ICoreWebView2Controller2.
Controller3
Wrapper for ICoreWebView2Controller3.
Cookie
Wrapper for ICoreWebView2Cookie.
CookieList
Wrapper for ICoreWebView2CookieList.
CookieManager
Wrapper for ICoreWebView2CookieManager.
DOMContentLoadedEventArgs
Wrapper for ICoreWebView2DOMContentLoadedEventArgs.
Deferral
Wrapper for ICoreWebView2Deferral.
DevToolsProtocolEventReceivedEventArgs
Wrapper for ICoreWebView2DevToolsProtocolEventReceivedEventArgs.
DevToolsProtocolEventReceiver
Wrapper for ICoreWebView2DevToolsProtocolEventReceiver.
Environment
Wrapper for ICoreWebView2Environment.
Environment2
Wrapper for ICoreWebView2Environment2.
Environment3
Wrapper for ICoreWebView2Environment3.
Environment4
Wrapper for ICoreWebView2Environment4.
EnvironmentBuilder
A builder for calling the CreateCoreWebView2EnvironmentWithOptions function.
EnvironmentInterop
Wrapper for ICoreWebView2EnvironmentInterop.
EnvironmentOptions
Wrapper for ICoreWebView2EnvironmentOptions.
Error
WebView2 Error.
EventRegistrationToken
Represents a reference to a delegate that receives change notifications.
FrameInfo
Wrapper for ICoreWebView2FrameInfo.
FrameInfoCollection
Wrapper for ICoreWebView2FrameInfoCollection.
FrameInfoCollectionIterator
Wrapper for ICoreWebView2FrameInfoCollectionIterator.
HttpHeadersCollectionIterator
Wrapper for ICoreWebView2HttpHeadersCollectionIterator.
HttpRequestHeaders
Wrapper for ICoreWebView2HttpRequestHeaders.
HttpResponseHeaders
Wrapper for ICoreWebView2HttpResponseHeaders.
Interop
Wrapper for ICoreWebView2Interop.
MoveFocusRequestedEventArgs
Wrapper for ICoreWebView2MoveFocusRequestedEventArgs.
NavigationCompletedEventArgs
Wrapper for ICoreWebView2NavigationCompletedEventArgs.
NavigationStartingEventArgs
Wrapper for ICoreWebView2NavigationStartingEventArgs.
NewWindowRequestedEventArgs
Wrapper for ICoreWebView2NewWindowRequestedEventArgs.
PermissionRequestedEventArgs
Wrapper for ICoreWebView2PermissionRequestedEventArgs.
PhysicalKeyStatus
Contains the information packed into the LPARAM sent to a Win32 key event. For more information about WM_KEYDOWN, navigate to [WM_KEYDOWN message][WindowsWin32InputdevWmKeydown].
PointerInfo
Wrapper for ICoreWebView2PointerInfo.
ProcessFailedEventArgs
Wrapper for ICoreWebView2ProcessFailedEventArgs.
ProcessFailedEventArgs2
Wrapper for ICoreWebView2ProcessFailedEventArgs2.
ScriptDialogOpeningEventArgs
Wrapper for ICoreWebView2ScriptDialogOpeningEventArgs.
Settings
Wrapper for ICoreWebView2Settings.
SourceChangedEventArgs
Wrapper for ICoreWebView2SourceChangedEventArgs.
Stream
Wrapper for IStream.
WebMessageReceivedEventArgs
Wrapper for ICoreWebView2WebMessageReceivedEventArgs.
WebResourceRequest
Wrapper for ICoreWebView2WebResourceRequest.
WebResourceRequestedEventArgs
Wrapper for ICoreWebView2WebResourceRequestedEventArgs.
WebResourceResponse
Wrapper for ICoreWebView2WebResourceResponse.
WebResourceResponseReceivedEventArgs
Wrapper for ICoreWebView2WebResourceResponseReceivedEventArgs.
WebResourceResponseView
Wrapper for ICoreWebView2WebResourceResponseView.
WebView
Wrapper for ICoreWebView2.
WebView_2
Wrapper for ICoreWebView2_2.
WebView_3
Wrapper for ICoreWebView2_3.
WindowFeatures
Wrapper for ICoreWebView2WindowFeatures.

Enums§

CapturePreviewImageFormat
Specifies the image format for the ICoreWebView2::CapturePreview method.
KeyEventKind
Specifies the key event type that triggered an AcceleratorKeyPressed event.
MoveFocusReason
Specifies the reason for moving focus.
PermissionKind
Indicates the type of a permission request.
PermissionState
Specifies the response to a permission request.
ProcessFailedKind
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.
ScriptDialogKind
Specifies the JavaScript dialog type used in the ICoreWebView2ScriptDialogOpeningEventHandler interface.
WebErrorStatus
Indicates the error status values for web navigations.
WebResourceContext
Specifies the web resource request contexts.

Functions§

check_hresult
Check a HRESULT, if it is SUCCEEDED, return Ok(()). Otherwide return an error containing the HRESULT.
compare_browser_versions
get_available_browser_version_string

Type Aliases§

Result