0.8.355-Interface IWebView2Environment3

Примечание

Эта ссылка больше не поддерживается. Последнюю справку по API можно найти в справочнике по API WebView2.

interface IWebView2Environment3
  : public IWebView2Environment2

Дополнительные функции, реализованные с помощью объекта Environment.

Краткий обзор

Участников Описания
add_NewVersionAvailable Событие NewVersionAvailable активируется, когда установлена более новая версия браузера EDGE и доступна для использования через WebView2.
remove_NewVersionAvailable Удалите обработчик событий, добавленный ранее add_NewVersionAvailable.

Дополнительные сведения вы видите в интерфейсе IWebView2Environment . Вы можете QueryInterface для этого интерфейса из объекта, реализующего IWebView2Environment.

Участников

add_NewVersionAvailable

Событие NewVersionAvailable активируется, когда установлена более новая версия браузера EDGE и доступна для использования через WebView2.

общедоступные значения HRESULT add_NewVersionAvailable(IWebView2NewVersionAvailableEventHandler * eventHandler, EventRegistrationToken * token)

Для использования более новой версии браузера необходимо создать новый IWebView2Environment и IWebView2WebView. Событие будет инициировано только для новой версии из того же канала, из которого выполняется код. Если вы не используете установленный EDGE, событие не срабатывает.

Поскольку папка данных пользователя может использоваться только одним процессом браузера, если вы хотите использовать одну и ту же папку данных пользователя в веб-представлении с помощью новой версии браузера, необходимо сначала закрыть IWebView2Environment и IWebView2WebViews, которые используют более старую версию браузера. Или просто запросите пользователя перезапустить приложение.

    // 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

Удалите обработчик событий, добавленный ранее add_NewVersionAvailable.

общедоступные значения HRESULT remove_NewVersionAvailable(маркер EventRegistrationToken)