interface IWebView2Environment3
Note
This reference is no longer being maintained. For the latest API reference, see WebView2 API Reference.
interface IWebView2Environment3
: public IWebView2Environment2
Additional functionality implemented by the Environment object.
Summary
Members | Descriptions |
---|---|
add_NewVersionAvailable | The NewVersionAvailable event fires when a newer version of the Edge browser is installed and available to use via WebView2. |
remove_NewVersionAvailable | Remove an event handler previously added with add_NewVersionAvailable. |
See the IWebView2Environment interface for more details. You can QueryInterface for this interface from the object that implements IWebView2Environment.
Members
add_NewVersionAvailable
The NewVersionAvailable event fires when a newer version of the Edge browser is installed and available to use via WebView2.
public HRESULT add_NewVersionAvailable(IWebView2NewVersionAvailableEventHandler * eventHandler,EventRegistrationToken * token)
To use the newer version of the browser you must create a new IWebView2Environment and IWebView2WebView. Event will only be fired for new version from the same Edge channel that the code is running from. When not running with installed Edge, no event will be fired.
Because a user data folder can only be used by one browser process at a time, if you want to use the same user data folder in the WebViews using the new version of the browser, you must close the IWebView2Environment and IWebView2WebViews that are using the older version of the browser first. Or simply prompt the user to restart the app.
// After the environment is successfully created,
// register a handler for the NewVersionAvailable event.
// This handler tells when there is a new Edge version available on the machine.
CHECK_FAILURE(m_webViewEnvironment->add_NewVersionAvailable(
Callback<IWebView2NewVersionAvailableEventHandler>(
[this](IWebView2Environment* sender, IWebView2NewVersionAvailableEventArgs* args)
-> HRESULT {
// Get the version value from args
wil::unique_cotaskmem_string newVersion;
CHECK_FAILURE(args->get_NewVersion(&newVersion));
std::wstring message = L"We detected there is a new version for the browser.";
message += L"\n\nVersion number: ";
message += newVersion.get();
message += L"\n\n";
if (m_webView)
{
message += L"Do you want to restart the app? \n\n";
message += L"Click No if you only want to re-create the webviews. \n";
message += L"Click Cancel for no action. \n";
}
int response = MessageBox(
m_mainWindow, message.c_str(), L"New available version",
m_webView ? MB_YESNOCANCEL : MB_OK);
if (response == IDYES)
{
RestartApp();
}
else if (response == IDNO)
{
ReinitializeWebViewWithNewBrowser();
}
else
{
// do nothing
}
return S_OK;
})
.Get(),
nullptr));
remove_NewVersionAvailable
Remove an event handler previously added with add_NewVersionAvailable.
public HRESULT remove_NewVersionAvailable(EventRegistrationToken token)
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по