Обзор функций и API WebView2
Внедрение элемента управления WebView2 в приложение предоставляет приложению доступ к различным методам и свойствам, предоставляемым через классы или интерфейсы WebView2. WebView2 содержит сотни API- интерфейсов, которые предоставляют широкий набор возможностей, начиная от расширения возможностей собственной платформы приложения до предоставления приложению возможности изменять возможности браузера. В этой статье представлена высокоуровневая группировка API WebView2, которая поможет вам понять, что можно сделать с помощью WebView2.
Обзор областей функций верхнего уровня
При размещении элемента управления WebView2 приложение имеет доступ к следующим функциям и API:
Функциональная область | Назначение |
---|---|
Основные классы: Среда, Контроллер и Core | Классы CoreWebView2Environment , CoreWebView2Controller и CoreWebView2 (или эквивалентные интерфейсы) работают вместе, чтобы в приложении можно было разместить элемент управления браузера WebView2 и получить доступ к функциям браузера. Эти большие классы предоставляют широкий спектр API- интерфейсов, к которым может получить доступ ваше ведущее приложение, чтобы предоставить пользователям следующие категории функций, связанных с браузером. |
Взаимодействие между веб-интерфейсом и собственным интерфейсом | Внедрение веб-содержимого в собственные приложения. Обмен данными между машинным и веб-кодом с помощью простых сообщений, кода JavaScript и собственных объектов. |
Функции браузера | Элемент управления WebView2 предоставляет приложению доступ ко многим функциям браузера. Вы можете изменить эти функции браузера, включить или отключить их. |
Управление процессами | Получите сведения о выполнении процессов WebView2, выходе из процессов и сбоях процессов, чтобы ваше приложение смогла принять соответствующие меры. |
Переход к страницам и управление загруженным содержимым | Управление переходом к веб-страницам и управление содержимым, загруженным на веб-страницах. |
iframes | Внедрение других веб-страниц в собственную веб-страницу. Определите, когда создаются внедренные веб-страницы, определите, когда внедренные веб-страницы перемещаются, и при необходимости обходить параметры x-frame. |
Проверка подлинности | Приложение может обрабатывать обычную проверку подлинности с помощью элемента управления WebView2. Обычная проверка подлинности — это особый подход к проверке подлинности, который является частью протокола HTTP. |
Отрисовка WebView2 в приложениях, отличных от платформы | Используйте эти API для настройки системы отрисовки WebView2, если в ведущем приложении не используется платформа пользовательского интерфейса. Эта настройка отрисовки определяет, как WebView2 отрисовывает выходные данные в хост-приложении и как WebView2 обрабатывает входные данные, фокус и специальные возможности. |
Отрисовка WebView2 с использованием композиции | Для отрисовки WebView2 на основе композиции используйте для CoreWebView2Environment создания CoreWebView2CompositionController .
CoreWebView2CompositionController предоставляет те же API, что и CoreWebView2Controller , но также включает API для отрисовки на основе композиции. |
Параметры среды |
Данные пользователя. Управление папкой пользовательских данных (UDF), которая является папкой на компьютере пользователя. UDF содержит данные, связанные с ведущим приложением и WebView2. Приложения WebView2 используют папки данных пользователей для хранения данных браузера, таких как файлы cookie, разрешения и кэшированные ресурсы. Управление несколькими профилями в рамках одной пользовательской функции. Выбор среды выполнения поддерживает предварительное тестирование и самостоятельное размещение. Вы можете указать порядок поиска для каналов предварительного просмотра браузера и указать каналы предварительного просмотра браузера. |
Производительность и отладка | Анализ и отладка производительности, обработка событий, связанных с производительностью, а также управление использованием памяти для повышения скорости реагирования приложения. |
Протокол Chrome DevTools (CDP) | Инструментирование, проверка, отладка и профилирование браузеров на основе Chromium. Протокол Chrome DevTools (CDP) является основой для Microsoft Edge DevTools. Используйте протокол Chrome DevTools для функций, которые не реализованы на платформе WebView2. |
На этой странице перечислены только API, которые находятся в пакетах SDK для выпуска; В нем нет списка экспериментальных API или стабильных API, которые еще не доступны в пакетах SDK для выпуска. Полный список API, включая экспериментальные API, см. в заметках о выпуске пакета SDK для WebView2.
Основные классы: Среда, Контроллер и Core
Классы CoreWebView2Environment
, CoreWebView2Controller
и CoreWebView2
(или эквивалентные интерфейсы) работают вместе, чтобы в приложении можно было разместить элемент управления браузера WebView2 и получить доступ к функциям браузера. Эти три больших класса предоставляют широкий спектр API, к которым может получить доступ ведущее приложение, чтобы предоставить пользователям множество категорий функций, связанных с браузером.
- Класс
CoreWebView2Environment
представляет группу элементов управления WebView2, которые используют один и тот же процесс браузера WebView2, папку данных пользователя и процессы отрисовщика. Из этогоCoreWebView2Environment
класса создаются пары экземпляровCoreWebView2Controller
иCoreWebView2
. - Класс
CoreWebView2Controller
отвечает за функциональные возможности, связанные с размещением, такие как фокус окна, видимость, размер и ввод, где в приложении размещается элемент управления WebView2. - Класс
CoreWebView2
предназначен для веб-частей элемента управления WebView2, включая сеть, навигацию, скрипт, а также анализ и отрисовку HTML.
См. также:
Взаимодействие между веб-интерфейсом и собственным интерфейсом
Элемент управления Microsoft Edge WebView2 позволяет внедрять веб-содержимое в собственные приложения. Вы можете взаимодействовать между машинным и веб-кодом с помощью простых сообщений, кода JavaScript и машинных объектов. Ниже приведены main API для взаимодействия между веб-кодом и машинным кодом.
Подразделы ниже:
- Общий доступ к объектам узла или веб-сайта
- Выполнение скрипта
- Веб-обмен сообщениями
- Диалоговые окна скриптов
- Общий буфер
Распространенные варианты использования веб-взаимодействия или собственного взаимодействия:
- Обновите заголовок окна собственного узла после перехода на другой веб-сайт.
- Отправьте собственный объект камеры и используйте его методы из веб-приложения.
- Запустите выделенный файл JavaScript на веб-стороне приложения.
См. также:
- Взаимодействие собственного и веб-кода
- Вызов веб-кода из машинного кода
- Вызов собственного кода из веб-кода
- Вызов собственного кода WinRT из веб-кода
-
API JavaScript в WebView2 для
window.chrome.webview
API JavaScript
Общий доступ к объектам узла или веб-сайта
WebView2 позволяет передавать объекты, определенные в машинном коде, в веб-код приложения. Объекты узла — это любые объекты, определенные в машинном коде, которые вы решили передать в веб-код приложения.
Объекты узла можно проецировать в JavaScript, чтобы можно было вызывать собственные методы объектов (или другие API) из веб-кода приложения. Например, приложение может вызывать такие API в результате взаимодействия с пользователем на веб-стороне приложения. Таким образом, вам не нужно повторно выполнять API собственных объектов, такие как методы или свойства, в веб-коде.
-
CoreWebView2
Класс: -
CoreWebView2Settings
Класс:
Выполнение скрипта
Позволяет ведущему приложению добавлять код JavaScript в веб-содержимое в элементе управления WebView2.
-
CoreWebView2
Класс: - Класс CoreWebView2ExecuteScriptResult
-
CoreWebView2Frame
Класс: - Класс CoreWebView2ScriptException
-
CoreWebView2Settings
Класс:
Веб-обмен сообщениями
Приложение может отправлять сообщения в веб-содержимое, которое находится в элементе управления WebView2, и получать сообщения из этого веб-содержимого. Сообщения отправляются в виде строк или объектов JSON.
При необходимости можно публиковать и получать объекты DOM вместе с сообщением с помощью additionalObjects
параметра PostWebMessageAsJson
(.NET, WinRT) или ( PostWebMessageAsJsonWithAdditionalObjects
Win32). Класс WebView2 CoreWebView2FileSystemHandle
представляет DOM FileSystemHandle
и CoreWebView2File
DOM File
. См. также chrome.webview.postMessageWithAdditionalObjects
в справочнике по JavaScript.
CoreWebView2
Класс:CoreWebView2Frame
Класс:CoreWebView2Settings
Класс:CoreWebView2Environment
Класс:CoreWebView2FileSystemHandle
Класс:Перечисление CoreWebView2FileSystemHandleKind
File
Directory
Перечисление CoreWebView2FileSystemHandlePermission
ReadOnly
ReadWrite
Диалоговые окна скриптов
При размещении WebView2 приложение может управлять различными диалогами JavaScript, подавлять их или заменять пользовательскими диалогами.
Общий буфер
API SharedBuffer поддерживает буферы общего доступа между процессом ведущего приложения WebView2 и процессом отрисовщика WebView2 на основе общей памяти из ОС.
См. также:
-
CoreWebView2
Класс: -
CoreWebView2Environment
Класс: -
CoreWebView2Frame
Класс: - Класс CoreWebView2SharedBuffer
-
Перечисление CoreWebView2SharedBufferAccess
ReadOnly
ReadWrite
Функции браузера
Элемент управления WebView2 предоставляет приложению доступ ко многим функциям браузера. Вы можете изменить эти функции браузера, включить или отключить их.
Подразделы ниже:
- Печать
- Файлы cookie
- Захват изображений
- Загружаемые файлы
- Сохранить как
- Обработка веб-уведомлений
- Разрешения
- Контекстные меню
- Строка состояния
- Беглое наложение полос прокрутки
- Агент пользователя
- Автозаполнение
- Audio
- Тестирование нажатий щелчков мыши в регионах
- Навигация с помощью жестов прокрутки
- Включение или отключение ответа браузера на клавиши акселератора (сочетания клавиш)
- Полноэкранный режим
- Панель инструментов PDF
- Визуальные темы
- Language
- Новое окно
- Закрыть окно
- Название документа
- Favicon
- Безопасность и конфиденциальность
- Расширения браузера
Печать
Веб-страницу можно распечатать на принтере, в PDF-файле или в потоке PDF, настроив настраиваемые параметры печати.
См. также:
-
CoreWebView2
Класс: -
CoreWebView2Environment
Класс: - Класс CoreWebView2PrintSettings
- Перечисление CoreWebView2PrintDialogKind
- Перечисление CoreWebView2PrintStatus
Файлы cookie
Файлы cookie в WebView2 можно использовать для управления сеансами пользователей, сохранения настроек персонализации пользователей и отслеживания поведения пользователей.
См. также:
-
CoreWebView2
Класс: - Класс CoreWebView2Cookie
- Класс CoreWebView2CookieManager
-
CoreWebView2Profile
Класс:
Захват изображений
Размещая WebView2, приложение может записывать снимки экрана и указывать, какой формат следует использовать для сохранения изображения.
-
CoreWebView2
Класс:
Загрузки
Приложение может управлять процессом скачивания в WebView2. Ваше приложение может:
- Разрешить или заблокировать скачивание на основе разных метаданных.
- Измените расположение скачивания.
- Настройка пользовательского пользовательского интерфейса загрузки.
- Настройка пользовательского интерфейса по умолчанию.
Общее:
-
CoreWebView2
Класс:
Изменение интерфейса по умолчанию:
-
CoreWebView2
Класс: -
CoreWebView2Profile
Класс:
Пользовательский интерфейс загрузки:
Сохранить как
API-интерфейсы "Сохранить как" позволяют программно выполнять операцию "Сохранить как ". Эти API-интерфейсы можно использовать для блокировки диалогового окна сохранить как по умолчанию, а затем либо автоматически сохранить, либо создать собственный пользовательский интерфейс для сохранения как. Эти API относятся только к диалоговому оккупа "Сохранить как ", а не к диалогу "Скачать ", в котором используются API загрузки.
CoreWebView2
Класс:Перечисление CoreWebView2SaveAsKind
Complete
Default
HtmlOnly
SingleFile
Перечисление CoreWebView2SaveAsUIResult
Cancelled
FileAlreadyExists
InvalidPath
KindNotSupported
Success
Класс CoreWebView2SaveAsUIShowingEventArgs
- Свойство CoreWebView2SaveAsUIShowingEventArgs.AllowReplace
- Свойство CoreWebView2SaveAsUIShowingEventArgs.Cancel
- CoreWebView2SaveAsUIShowingEventArgs.ContentMimeType Property
- Свойство CoreWebView2SaveAsUIShowingEventArgs.Kind
- CoreWebView2SaveAsUIShowingEventArgs.SaveAsFilePath Property
- CoreWebView2SaveAsUIShowingEventArgs.SuppressDefaultDialog Property
- Метод CoreWebView2SaveAsUIShowingEventArgs.GetDeferral
Настройка предупреждения системы безопасности при сохранении файла
Прослушивая SaveFileSecurityCheckStarting
событие, приложение может зарегистрировать обработчик в этом событии, чтобы получить путь к файлу, расширение имени файла и сведения о URI источника документа. Затем можно применить собственные правила для выполнения таких действий:
- Разрешить сохранение файла без предоставления пользовательского интерфейса предупреждения системы безопасности по умолчанию о политике типа файла.
- Отмена сохранения.
- Создайте собственный пользовательский интерфейс для управления политиками типа файлов среды выполнения.
CoreWebView2
Класс:Класс CoreWebView2SaveFileSecurityCheckStartingEventArgs
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.CancelSave Property
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.DocumentOriginUri Property
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.FileExtension Property
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.FilePath Property
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.SuppressDefaultPolicy Property
- Метод CoreWebView2SaveFileSecurityCheckStartingEventArgs.GetDeferral
Обработка веб-уведомлений
API-интерфейсы веб-уведомлений поддерживают непостояные уведомления. Событие NotificationReceived
для CoreWebView2
управляет обработкой веб-уведомлений, что позволяет настраивать или подавять ведущем приложении. Необработанных уведомлений по умолчанию используется пользовательский интерфейс WebView2.
CoreWebView2
Класс:Класс CoreWebView2Notification
- Свойство CoreWebView2Notification.BadgeUri
- Свойство CoreWebView2Notification.Body
- Свойство CoreWebView2Notification.BodyImageUri
- Свойство CoreWebView2Notification.Direction
- Свойство CoreWebView2Notification.IconUri
- Свойство CoreWebView2Notification.Issilent
- Свойство CoreWebView2Notification.Language
- Свойство CoreWebView2Notification.RequiresInteraction
- Свойство CoreWebView2Notification.ShouldRenotify
- Свойство CoreWebView2Notification.Tag
- Свойство CoreWebView2Notification.Timestamp
- Свойство CoreWebView2Notification.Title
- Свойство CoreWebView2Notification.VibrationPattern
- Метод CoreWebView2Notification.ReportClicked
- Метод CoreWebView2Notification.ReportClosed
- Метод CoreWebView2Notification.ReportShown
- Событие CoreWebView2Notification.CloseRequested
Перечисление CoreWebView2TextDirectionKind
Default
LeftToRight
RightToLeft
Разрешения
Различные веб-страницы могут запрашивать разрешения на доступ к некоторым привилегированным ресурсам, таким как датчик геолокации, камера и микрофон. Ведущее приложение может программно отвечать на запросы разрешений и может заменить пользовательский интерфейс разрешений по умолчанию собственным пользовательским интерфейсом.
-
CoreWebView2
Класс: -
CoreWebView2Frame
Класс: - Перечисление CoreWebView2PermissionKind
-
CoreWebView2PermissionRequestedEventArgs
Класс: - Класс CoreWebView2PermissionSetting
-
CoreWebView2Profile
Класс:
Контекстные меню
Элемент управления WebView2 предоставляет контекстное меню по умолчанию (контекстное меню), которое можно настроить или отключить, а также создать собственное контекстное меню.
См. также:
-
CoreWebView2
Класс: - Класс CoreWebView2ContextMenuItem
- Класс CoreWebView2ContextMenuRequestedEventArgs
- Класс CoreWebView2ContextMenuTarget
-
CoreWebView2Environment
Класс: -
CoreWebView2Settings
Класс:
Строка состояния
Строка состояния находится в левом нижнем углу страницы и отображает состояние отображаемой веб-страницы. В WebView2 можно включить или отключить строку состояния, получить текст в строке состояния и узнать, когда текст строки состояния изменился.
-
CoreWebView2
Класс: -
CoreWebView2Settings
Класс:
Беглое наложение полос прокрутки
Стилизация полос прокрутки с помощью дизайна Microsoft Fluent и наложение полос прокрутки на веб-содержимое. Эта адаптивная конструкция полосы прокрутки настраивается для различных устройств и размеров окон.
Чтобы поэкспериментировать с полосами прокрутки наложения Fluent, в Microsoft Edge перейдите по адресу edge://flags
и введите fluent overlay scrollbars.
См. также:
- Флаги -
msEdgeFluentOverlayScrollbar
браузера WebView2 иmsOverlayScrollbarWinStyle
флаги.
CoreWebView2EnvironmentOptions
Класс:Перечисление CoreWebView2ScrollbarStyle
Default
FluentOverlay
Агент пользователя
Агент пользователя — это строка, представляющая удостоверение программы от имени пользователя, например имя браузера. В WebView2 можно задать агент пользователя.
См. также:
- Обнаружение Windows 11 с помощью User-Agent клиентских подсказок
- Переопределение строки агента пользователя
-
CoreWebView2Settings
Класс:
Автозаполнение
Приложение может независимо контролировать, включена ли функция автозаполнения браузера для общих сведений или паролей.
-
CoreWebView2Settings
Класс:
"Audio" (Аудио);
Ваше приложение может отключить и включить весь звук, а также узнать, когда воспроизводимый звук.
Тестирование нажатий щелчков мыши в регионах
Предоставляет результаты тестирования попадания в регионах, содержащихся в WebView2. Полезно для визуально размещенных приложений, которые хотят обрабатывать события мыши в не клиентской области окна WebView2.
CoreWebView2CompositionController
Класс:CoreWebView2NonClientRegionChangedEventArgs
Класс:Перечисление CoreWebView2NonClientRegionKind
Caption
Client
Nowhere
CoreWebView2Settings
Класс:
Навигация с помощью жестов прокрутки
Размещая элемент управления WebView2, приложение может включать или отключать навигацию с помощью жестов прокрутки на устройствах с поддержкой сенсорного ввода. Этот жест позволяет конечным пользователям:
- Проведите пальцем влево или вправо (по горизонтали), чтобы перейти к предыдущей или следующей странице в журнале навигации.
- Потяните, чтобы обновить текущую страницу (проведите по вертикали).
В настоящее время эта функция отключена по умолчанию в браузере. Чтобы включить эту функцию в WebView2, задайте AdditionalBrowserArguments
свойство , указав --pull-to-refresh
параметр .
-
CoreWebView2Settings
Класс: -
CoreWebView2EnvironmentOptions
Класс:
Включение или отключение ответа браузера на клавиши акселератора (сочетания клавиш)
ICoreWebView2AcceleratorKeyPressedEventArgs
IsBrowserAcceleratorKeyEnabled
имеет свойство, позволяющее управлять тем, обрабатывает ли браузер клавиши акселератора (сочетания клавиш), такие как CTRL+P или F3.
См. также:
-
CoreWebView2AcceleratorKeyPressedEventArgs
Класс:
Полноэкранный режим
В WebView2 можно узнать, когда ЭЛЕМЕНТ HTML входит в полноэкранное представление или покидает его.
Панель инструментов PDF
В средстве просмотра PDF-файлов браузера в верхней части находится панель инструментов для конкретного PDF-файла. В WebView2 некоторые элементы можно скрыть на панели инструментов средства просмотра PDF.
-
CoreWebView2Settings
Класс:
Темы
В WebView2 можно настроить цветовую тему как системную, светлую или темную.
-
CoreWebView2Profile
Класс:
Язык
Свойство Language
задает язык интерфейса WebView2 по умолчанию, который применяется к пользовательскому интерфейсу браузера (например, контекстным меню и диалоговым окнам), а также задает accept-language
http-заголовок, который WebView2 отправляет веб-сайтам.
Свойство ScriptLocale
позволяет ведущему приложению задать языковой стандарт по умолчанию для всех Intl
API JavaScript и других зависимых от него API JavaScript, таких как Intl.DateTimeFormat()
, что влияет на форматирование строк в форматах времени и даты.
-
CoreWebView2EnvironmentOptions
Класс: -
CoreWebView2ControllerOptions
Класс:
Новое окно
WebView2 предоставляет функциональные возможности для обработки функции window.open()
JavaScript .
Закрыть окно
WebView2 предоставляет функциональные возможности для обработки функции window.close()
JavaScript .
-
CoreWebView2
Класс: -
CoreWebView2Controller
Класс:
Название документа
Приложение может определить, когда изменилось название текущего документа верхнего уровня.
-
CoreWebView2
Класс:
Favicon
В WebView2 можно задать Favicon для веб-сайта или получать уведомления о его изменениях.
-
CoreWebView2
Класс:
Безопасность и конфиденциальность
Предотвращение отслеживания
Предотвращение отслеживания позволяет ведущему приложению контролировать уровень предотвращения отслеживания элемента управления WebView2, связанного с профилем пользователя.
-
CoreWebView2EnvironmentOptions
Класс: -
CoreWebView2Profile
Класс: -
Перечисление CoreWebView2TrackingPreventionLevel
None
Basic
Balanced
Strict
SmartScreen
Microsoft Defender SmartScreen ("SmartScreen") включен по умолчанию. Свойство IsReputationCheckingRequired
определяет, включен ли SmartScreen.
Если вы не отключите SmartScreen, необходимо уведомить всех пользователей о том, что ваше программное обеспечение включает в себя Microsoft Defender SmartScreen, а также собирает и отправляет в корпорацию Майкрософт сведения о пользователе, как указано в Заявлении о конфиденциальности Майкрософт и в Документе оконфиденциальности Microsoft Edge в SmartScreen.
См. также:
- SmartScreen в разделе Данные и конфиденциальность в WebView2.
-
CoreWebView2Settings
Класс:
Настраиваемые отчеты о сбоях
Если какой-либо процесс WebView2 завершает работу, создается один или несколько файлов minidump и отправляются в Корпорацию Майкрософт для диагностики. Используйте этот API для настройки отчетов о сбоях при выполнении диагностика и выполнении анализа.
- Чтобы предотвратить отправку аварийных дампов в Корпорацию Майкрософт, задайте для свойства значение
IsCustomCrashReportingEnabled
false
. - Чтобы найти аварийные дампы и выполнить их настройку
CrashDumpFolderPath
, используйте свойство .
См. также:
- Настраиваемые отчеты о сбоях в данных и конфиденциальности в WebView2.
- Файлы Minidump
-
CoreWebView2EnvironmentOptions
Класс: -
CoreWebView2Environment
Класс:
Расширения браузера
Приложение может внедрить элемент управления WebView2, использующий расширения браузера (надстройки). Расширение Microsoft Edge — это небольшое приложение, которое разработчики используют для добавления или изменения функций Microsoft Edge, чтобы улучшить работу пользователя при просмотре.
См. также:
CoreWebView2EnvironmentOptions
Класс:CoreWebView2Profile
Класс:
Управление процессами
Получите сведения о выполнении процессов WebView2, выходе из процессов и сбоях процессов, чтобы ваше приложение смогла принять соответствующие меры.
Подразделы ниже:
-
CoreWebView2
Класс: - Класс CoreWebView2BrowserProcessExitedEventArgs
-
CoreWebView2Environment
Класс: - Класс CoreWebView2ProcessFailedEventArgs
- Перечисление CoreWebView2ProcessFailedKind
- Перечисление CoreWebView2ProcessFailedReason
- Класс CoreWebView2ProcessInfo
Сведения о процессе кадра
API сведений о кадрах, включая GetProcessExtendedInfos
, предоставляет snapshot коллекцию всех кадров, которые активно выполняются в связанном процессе отрисовщика. Этот API позволяет приложению определять, какая часть WebView2 потребляет ресурсы, например память или ЦП.
CoreWebView2Environment
Класс:CoreWebView2ProcessExtendedInfo
Класс:CoreWebView2
Класс:CoreWebView2Frame
Класс:CoreWebView2FrameInfo
Класс:
Переход к страницам и управление загруженным содержимым
С помощью элемента управления WebView2 приложение может управлять переходом на веб-страницы и содержимым, загруженным на веб-страницах.
Подразделы ниже:
- Управление содержимым, загруженным в WebView2
- Журнал навигации
- Вид навигации
- Блокировка нежелательного перехода
- События навигации
- Управление сетевыми запросами в WebView2
- Регистрация пользовательской схемы
- Сертификаты клиента
- Сертификаты сервера
- Запуск схемы внешнего URI
Управление содержимым, загруженным в WebView2
Эти API загружают, останавливают загрузку и перезагрузку содержимого в WebView2. Загружаемое содержимое может быть следующим:
- Содержимое из URL-адреса.
- Строка HTML.
- Сопоставление локального содержимого через имя виртуального узла с локальной папкой.
- Содержимое из созданного сетевого запроса.
См. также:
-
CoreWebView2
Класс:- Метод CoreWebView2.ClearVirtualHostNameToFolderMapping
- Метод CoreWebView2.Navigate
- Метод CoreWebView2.NavigateToString
- Метод CoreWebView2.NavigateWithWebResourceRequest
- Метод CoreWebView2.Reload
- Метод CoreWebView2.SetVirtualHostNameToFolderMapping
- Метод CoreWebView2.Stop
- Событие CoreWebView2.WebResourceRequested
-
CoreWebView2Settings
Класс:
Журнал навигации
Методы журнала обеспечивают обратную и прямую навигацию в WebView2, а события журнала предоставляют сведения об изменениях в журнале и в текущем источнике WebView2.
Вид навигации
NavigationKind
получает тип навигации для каждой навигации, например "Назад/вперед", "Перезагрузка" или переход к новому документу.
-
CoreWebView2NavigationStartingEventArgs
Класс: - Перечисление CoreWebView2NavigationKind
Блокировка нежелательного перехода
Событие NavigationStarting
позволяет приложению отменить переход по указанным URL-адресам в WebView2, в том числе для кадров.
-
CoreWebView2
Класс:- Событие CoreWebView2.NavigationStarting
-
Событие CoreWebView2.FrameNavigationStarting — заменено; вместо этого используйте
CoreWebView2Frame.NavigationStarting
-
CoreWebView2Frame
Класс: - Класс CoreWebView2NavigationStartingEventArgs
События навигации
С помощью NavigationStarting
и других событий навигации приложение может быть проинформировано о состоянии навигации в WebView2.
Навигация — это процесс загрузки нового URL-адреса.
См. также:
-
CoreWebView2
Класс:- Событие CoreWebView2.ContentLoading
- Событие CoreWebView2.DOMContentLoaded
-
Событие CoreWebView2.FrameNavigationCompleted — заменено; вместо этого используйте
CoreWebView2Frame.NavigationCompleted
. - Событие CoreWebView2.NavigationCompleted
- Класс CoreWebView2ContentLoadingEventArgs
- Класс CoreWebView2DOMContentLoadedEventArgs
-
CoreWebView2Frame
Класс: - Класс CoreWebView2NavigationCompletedEventArgs
Управление сетевыми запросами в WebView2
Событие WebResourceRequested
позволяет приложению перехватывать и переопределять все сетевые запросы в WebView2. Событие WebResourceResponseReceived
позволяет приложению отслеживать отправленный запрос и ответ, полученный из сети.
См. также:
CoreWebView2
Класс:
Регистрация пользовательской схемы
Позволяет CustomSchemeRegistration
регистрировать пользовательские схемы в WebView2, чтобы приложение хозяйки WebResourceRequested
обрабатывал события для запросов к этим URL-адресам пользовательских схем и переходить webView2 по таким URL-адресам.
- Класс CoreWebView2CustomSchemeRegistration
-
CoreWebView2EnvironmentOptions
Класс:
Сертификаты клиента
В WebView2 можно использовать API сертификата клиента, чтобы выбрать сертификат клиента на уровне приложения. Этот API позволяет:
- При необходимости отобразите пользователю пользовательский интерфейс.
- Замените диалоговое окно сертификата клиента по умолчанию.
- Программный запрос сертификатов.
- Выберите сертификат из списка, чтобы ответить серверу, когда WebView2 выполняет запрос к HTTP-серверу, которому требуется сертификат клиента для проверки подлинности HTTP.
Сертификаты сервера
В WebView2 можно использовать API сертификата сервера, чтобы доверять TLS-сертификату сервера на уровне приложения. Таким образом, главное приложение может отрисовыть страницу, не запрашивая у пользователя ошибку TLS, или ведущее приложение может автоматически отменить запрос.
Запуск схемы внешнего URI
Запустите схему URI, зарегистрированную в ОС.
-
CoreWebView2
Класс: -
Класс CoreWebView2LaunchingExternalUriSchemeEventArgs
- CoreWebView2LaunchingExternalUriSchemeEventArgs.Cancel Property
- CoreWebView2LaunchingExternalUriSchemeEventArgs.InitiatingOrigin Property
- Свойство CoreWebView2LaunchingExternalUriSchemeEventArgs.IsUserInitiated
- Свойство CoreWebView2LaunchingExternalUriSchemeEventArgs.Uri
- Метод CoreWebView2LaunchingExternalUriSchemeEventArgs.GetDeferral
iframes
Iframes позволяет внедрять другие веб-страницы в собственную веб-страницу. В WebView2 вы можете:
- Узнайте, когда создаются iframes.
- Узнайте, когда iframes переходят.
- Разрешить обход параметров X-кадра.
См. также:
Проверка подлинности
Приложение может обрабатывать обычную проверку подлинности с помощью элемента управления WebView2. Обычная проверка подлинности — это особый подход к проверке подлинности, который является частью протокола HTTP.
См. также:
Отрисовка WebView2 в приложениях, отличных от платформы
Используйте эти API для настройки системы отрисовки WebView2, если в ведущем приложении не используется платформа пользовательского интерфейса. Эта настройка отрисовки определяет, как WebView2 отрисовывает выходные данные в хост-приложении и как WebView2 обрабатывает входные данные, фокус и специальные возможности.
Когда следует использовать эти API
Платформа пользовательского интерфейса . Если вы используете платформу пользовательского интерфейса для приложения, следует использовать элемент WebView2, предоставляемый этой платформой пользовательского интерфейса, а не эти API.
Нет платформы пользовательского интерфейса и не используется композиция . Если вы не используете платформу пользовательского интерфейса для приложения (например, если вы используете только Win32 напрямую) или если у вашей платформы пользовательского интерфейса нет элемента WebView2, необходимо создать
CoreWebView2Controller
и отобразить его в приложении, используя эти API в этом разделе.Нет платформы пользовательского интерфейса и использование композиции . Если пользовательский интерфейс приложения создан с помощью DirectComposition или Windows.UI.Composition, следует использовать
CoreWebView2CompositionController
вместо этих API. См. раздел Отрисовка WebView2 с помощью композиции ниже.
Подразделы ниже:
- Определение размера, позиционирование и видимость
- Масштабирование
- Масштаб растеризации
- Фокус и табуляция
- Родительское окно
- Ускорители клавиатуры
- Цвет фона по умолчанию
-
CoreWebView2Controller
Класс: -
CoreWebView2Environment
Класс:
Определение размера, позиционирование и видимость
CoreWebView2Controller
принимает родительский HWND
объект . Свойство Bounds
размеров и позиционирует WebView2 относительно родительского HWND
объекта . Видимость WebView2 можно переключить с помощью IsVisible
.
-
CoreWebView2Controller
Класс:
Масштабирование
WebView2 ZoomFactor
используется для масштабирования только веб-содержимого окна. Масштабирование пользовательского интерфейса также обновляется, когда пользователь масштабирует содержимое, нажимая клавиши CTRL при повороте колесика мыши.
-
CoreWebView2Controller
Класс: -
CoreWebView2Settings
Класс:
Масштаб растеризации
API RasterizationScale масштабирует весь пользовательский интерфейс WebView2, включая контекстные меню, подсказки и всплывающие окна. Приложение может задать, должен ли WebView2 обнаруживать изменения масштаба монитора и автоматически обновлять RasterizationScale.
BoundsMode
используется для настройки того, интерпретируется ли свойство Bounds как необработанные пиксели или dips (которые необходимо масштабировать с помощью RasterizationScale
).
Фокус и табуляция
Элемент управления WebView2 вызывает события, чтобы сообщить приложению, когда элемент управления получает фокус или теряет фокус. Для перехода на вкладки (нажатие клавиши TAB ) существует API для перемещения фокуса в WebView2 и событие для WebView2 для запроса приложения на возврат фокуса.
Родительское окно
WebView2 можно повторно иродовать в другой дескриптор родительского окна (HWND
). WebView2 также необходимо уведомлять о том, что положение приложения на экране изменилось.
-
CoreWebview2Controller
Класс:
Ускорители клавиатуры
Когда WebView2 имеет фокус, он напрямую получает входные данные от пользователя. Приложение может захотеть перехватывать и обрабатывать определенные сочетания клавиш акселератора (сочетания клавиш) или отключать обычное поведение клавиш акселератора браузера.
См. также включение или отключение браузера, отвечающего на клавиши акселератора (сочетания клавиш) выше.
- Класс CoreWebView2AcceleratorKeyPressedEventArgs
-
CoreWebView2Controller
Класс: -
CoreWebView2Settings
Класс:
Цвет фона по умолчанию
WebView2 может указать цвет фона по умолчанию. Цвет может быть любым непрозрачным или прозрачным. Этот цвет будет использоваться, если HTML-страница не задает собственный цвет фона.
-
CoreWebView2Controller
Класс:
Отрисовка WebView2 с использованием композиции
Для отрисовки WebView2 на основе композиции используйте для CoreWebView2Environment
создания CoreWebView2CompositionController
.
CoreWebView2CompositionController
предоставляет те же API, что и CoreWebView2Controller
, но также включает API для отрисовки на основе композиции.
Подразделы ниже:
- Подключение к визуальному дереву
- Переадресация входных данных
- Перетаскивание
- Специальные возможности
- Класс CoreWebView2CompositionController
-
CoreWebView2Environment
Класс:
Подключение к визуальному дереву
WebView2 может подключать свое дерево композиции к idCompositionVisual, IDCompositionTarget или Windows::UI::Composition::ContainerVisual
.
-
CoreWebView2CompositionController
Класс:
Переадресация входных данных
Пространственные входные данные (мышь, сенсорный ввод, перо) принимаются приложением и должны быть отправлены в WebView2. WebView2 уведомляет приложение о том, когда курсор следует обновить в зависимости от положения мыши.
-
CoreWebView2CompositionController
Класс: -
CoreWebView2Environment
Класс: - Класс CoreWebView2PointerInfo
Перетаскивание
Перетаскивание из элемента управления WebView2 в другое приложение поддерживается по умолчанию. Однако для перетаскивания в элемент управления WebView2 требуется, чтобы, когда ведущее приложение получает событие из системы, ведущее приложение должно пересылать IDropTarget
событие в элемент управления WebView2. Перетаскивание в элемент управления WebView2 включает операции перетаскивания, которые полностью находятся в элементе управления WebView2.
Используйте следующие API для пересылки IDropTarget
событий из системы в элемент управления WebView2.
-
CoreWebView2CompositionController
Класс:
Специальные возможности
По умолчанию WebView2 будет отображаться в дереве специальных возможностей как дочерний элемент родительского HWND для приложений Win32/C++. WebView2 предоставляет API для лучшего расположения содержимого WebView2 по сравнению с другими элементами в приложении.
Параметры среды
Подразделы ниже:
Данные пользователя
Управление папкой пользовательских данных (UDF), которая является папкой на компьютере пользователя. UDF содержит данные, связанные с ведущим приложением и WebView2. Приложения WebView2 используют папки данных пользователей для хранения данных браузера, таких как файлы cookie, разрешения и кэшированные ресурсы.
Подразделы ниже:
См. также:
-
CoreWebView2Environment
Класс: -
CoreWebView2EnvironmentOptions
Класс:
Очистка данных браузера:
-
CoreWebView2Profile
Класс: - Перечисление CoreWebView2BrowsingDataKinds
Несколько профилей
Управление несколькими профилями в одной папке данных пользователя.
См. также:
Создайте объект options, определяющий профиль:
-
CoreWebView2Environment
Класс: - Класс CoreWebView2ControllerOptions
Создайте элемент управления WebView2, использующий профиль:
-
CoreWebView2Environment
Класс:
Доступ к профилю и управление им:
-
CoreWebView2
Класс: - Класс CoreWebView2Profile
Удаление профиля
Приложение может удалять профили пользователей для элемента управления веб-браузера WebView2.
См. также:
-
CoreWebView2Profile
Класс:
Выбор среды выполнения
Выбор среды выполнения поддерживает предварительное тестирование и самостоятельное размещение. При создании среды WebView2:
- Чтобы указать порядок поиска для каналов предварительного просмотра браузера, используйте
CoreWebView2EnvironmentOptions.ChannelSearchKind
свойство . - Чтобы указать каналы предварительного просмотра браузера, используйте
CoreWebView2EnvironmentOptions.ReleaseChannels
свойство .
См. также:
- Тестирование будущих API и функций
- Предварительное тестирование с помощью каналов предварительной версии
- Самостоятельное размещение путем развертывания каналов предварительной версии
CoreWebView2EnvironmentOptions
Класс:Перечисление CoreWebView2ChannelSearchKind
MostStable
LeastStable
Перечисление CoreWebView2ReleaseChannels
None
Stable
Beta
Dev
Canary
Производительность и отладка
Анализ и отладка производительности, обработка событий, связанных с производительностью, а также управление использованием памяти для повышения скорости реагирования приложения.
Подразделы ниже:
Целевой объект использования памяти
Задает уровни потребления памяти, например low
или normal
.
Протокол Chrome DevTools (CDP)
Протокол Chrome DevTools (CDP) предоставляет API для инструментирования, проверки, отладки и профилирования Chromium браузеров. Протокол Chrome DevTools является основой для Microsoft Edge DevTools. Используйте протокол Chrome DevTools для функций, которые не реализованы на платформе WebView2.
См. также:
Открытый:
-
CoreWebView2Settings
Класс: -
CoreWebView2
Класс:
Звать:
-
CoreWebView2
Класс:
Приёмник:
См. также
- Введение в Microsoft Edge WebView2
- Справочник по API WebView2 . Ссылки на API для дополнительных платформ и языков, таких как WinRT/C++ (COM).