description | title | ms.date | keywords | topic_type | api_name | api_type | api_location | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Additional options used to create WebView2 Environment that manages custom scheme registration. |
WebView2 Win32 C++ ICoreWebView2EnvironmentOptions4 |
05/28/2024 |
IWebView2, IWebView2WebView, webview2, webview, win32 apps, win32, edge, ICoreWebView2, ICoreWebView2Controller, browser control, edge html, ICoreWebView2EnvironmentOptions4 |
|
|
|
|
interface ICoreWebView2EnvironmentOptions4
: public IUnknown
Additional options used to create WebView2 Environment that manages custom scheme registration.
Members | Descriptions |
---|---|
GetCustomSchemeRegistrations | Array of custom scheme registrations. |
SetCustomSchemeRegistrations | Set the array of custom scheme registrations to be used. |
Product | Introduced |
---|---|
WebView2 Win32 | 1.0.1587.40 |
WebView2 Win32 Prerelease | 1.0.1619 |
Array of custom scheme registrations.
public HRESULT GetCustomSchemeRegistrations(UINT32 * count, ICoreWebView2CustomSchemeRegistration *** schemeRegistrations)
The returned ICoreWebView2CustomSchemeRegistration pointers must be released, and the array itself must be deallocated with CoTaskMemFree.
Set the array of custom scheme registrations to be used.
public HRESULT SetCustomSchemeRegistrations(UINT32 count, ICoreWebView2CustomSchemeRegistration ** schemeRegistrations)
Microsoft::WRL::ComPtr<ICoreWebView2EnvironmentOptions4> options4;
if (options.As(&options4) == S_OK)
{
const WCHAR* allowedOrigins[1] = {L"https://*.example.com"};
auto customSchemeRegistration =
Microsoft::WRL::Make<CoreWebView2CustomSchemeRegistration>(L"custom-scheme");
customSchemeRegistration->SetAllowedOrigins(1, allowedOrigins);
auto customSchemeRegistration2 =
Microsoft::WRL::Make<CoreWebView2CustomSchemeRegistration>(L"wv2rocks");
customSchemeRegistration2->put_TreatAsSecure(TRUE);
customSchemeRegistration2->SetAllowedOrigins(1, allowedOrigins);
customSchemeRegistration2->put_HasAuthorityComponent(TRUE);
auto customSchemeRegistration3 =
Microsoft::WRL::Make<CoreWebView2CustomSchemeRegistration>(
L"custom-scheme-not-in-allowed-origins");
ICoreWebView2CustomSchemeRegistration* registrations[3] = {
customSchemeRegistration.Get(), customSchemeRegistration2.Get(),
customSchemeRegistration3.Get()};
options4->SetCustomSchemeRegistrations(
2, static_cast<ICoreWebView2CustomSchemeRegistration**>(registrations));
}