Win32 web view host windows 10 что это такое

Обновлено: 06.07.2024

Сегодня мы рады сообщить, что Microsoft Edge WebView2 для Win32 C/C++ общедоступен и готов к использованию в рабочих приложениях! С сегодняшним объявлением мы официально выпускаем совместимый с предыдущими версиями WebView2 SDK вместе с готовой к работе средой выполнения WebView2. Их можно использовать в любом приложении Win32 C/C++, и они поддерживаются в существующих версиях Windows.

Прежде чем мы углубимся в детали, мы также хотим поблагодарить всех разработчиков, которые были с нами на пути к предварительной версии, помогая нам формировать продукт благодаря раннему внедрению и постоянной обратной связи. Мы с нетерпением ждем возможности продолжить сотрудничество в том, что будет дальше.

Итак, на этом давайте немного поговорим о WebView2 и о том, что означает выпуск GA.

WebView2 — это новый встроенный веб-элемент управления Microsoft, созданный поверх Microsoft Edge (Chromium). Это означает, что как разработчик приложений для Windows вы теперь будете иметь доступ к новейшим веб-технологиям как в существующих, так и в новых приложениях. WebView2 позволяет сочетать простоту и гибкость разработки для Интернета с возможностями создания собственного настольного приложения. Если вы еще не знакомы с WebView2, наш доклад Ignite в этом году предоставит вам отличный обзор, который поможет вам освоиться.



WebView2 также является частью Project Reunion, что означает, что он будет доступен в приложениях Win32 и UWP, а также в нескольких различных стеках пользовательского интерфейса. Вот краткий обзор текущих фреймворков и того, где они находятся:

WebView2 также предлагает две разные модели распространения: Evergreen и фиксированную версию. Evergreen WebView2 — это режим, в котором базовая веб-платформа (среда выполнения WebView2) всегда актуальна и автоматически обновляется корпорацией Майкрософт, предоставляя вам доступ к новейшим веб-возможностям и исправлениям безопасности. Среда выполнения Evergreen WebView2 также используется всеми приложениями, использующими модель Evergreen, что позволяет экономить место на диске.

Для приложений со строгими требованиями к совместимости фиксированная версия позволяет вашему приложению связать копию среды выполнения WebView2, которая не обновляется автоматически, и вы, как разработчик, контролируете и несете ответственность за обновление среды выполнения.

Те из вас, кто следит за WebView2, могут знать, что на этапе предварительного просмотра мы стремились выпускать новый SDK каждые 6 недель. В будущем мы продолжим быть гибкими, поскольку обновления WebView2 SDK и среды выполнения обычно будут соответствовать обновлениям стабильного канала Microsoft Edge. С каждым обновлением браузера Microsoft Edge Stable вы можете ожидать:

  • Автоматическое обновление приложений, использующих Evergreen WebView2 Runtime
  • Новая фиксированная версия среды выполнения для приложений, решивших объединить среду выполнения самостоятельно.

Кроме того, при каждом обновлении стабильной версии браузера Microsoft Edge вы можете ожидать обновленный SDK WebView2 с новыми API. У разработчиков будет выбор: оставить старые SDK с прямой совместимостью или использовать новый SDK для новых API-интерфейсов WebView2. Мы также продолжим выпускать «предварительные версии» SDK, как сегодня, чтобы собирать отзывы разработчиков об экспериментальных API.

С сегодняшним общедоступным выпуском наши партнеры-разработчики также могут начать выпускать свои обновления WebView2. Команды, занимающиеся надстройками Office и Outlook, поделились ключевыми обновлениями продуктов, основанными на WebView2, и мы с нетерпением ждем более широкого развертывания их продуктов. У нас также есть еще несколько интересных партнерских отношений, о которых мы с нетерпением ждем в течение следующих нескольких месяцев.

Outlook Web App и Outlook Desktop рядом друг с другом показывают один и тот же компонент поиска комнаты.

Outlook Desktop (слева) с помощью WebView2 для повторного использования компонента Room Finder из Outlook Web App (справа).

Итак, с чего начать? Это просто: ознакомьтесь с нашей документацией, чтобы узнать больше, или следуйте нашим руководствам по началу работы с Win32 C/C++, WinForms, WPF и WinUI 3. У нас также есть несколько более полных примеров, и мы всегда ищем Обратная связь. Не забудьте также подписаться на нашу страницу объявлений, чтобы быть в курсе будущих обновлений WebView2.

И на этом удачного программирования — нам не терпится увидеть, что вы создадите!

– Линдсей Кубасик, главный менеджер по управлению проектами, Microsoft Edge
– Лимин Чжу, старший руководитель программы, Microsoft Edge

Элемент управления веб-представлением встраивает представление в ваше приложение, которое отображает веб-контент с помощью механизма визуализации Microsoft Edge Legacy. Гиперссылки также могут отображаться и функционировать в элементе управления веб-представления.

Элемент управления WebView2 использует Microsoft Edge (Chromium) в качестве механизма рендеринга для отображения веб-контента в приложениях. WebView2 доступен как часть библиотеки пользовательского интерфейса Windows 3 (WinUI3).Дополнительные сведения см. в разделах Введение в Microsoft Edge WebView2, Начало работы с WebView2 в WinUI 3 (предварительная версия) и WebView2 в справочнике по WinUI API.

Это правильный элемент управления?

Используйте элемент управления веб-представления для отображения форматированного содержимого HTML с удаленного веб-сервера, динамически сгенерированного кода или файлов содержимого в пакете приложения. Расширенный контент также может содержать код сценария и обмениваться данными между сценарием и кодом вашего приложения.

Примеры

Если у вас установлено приложение XAML Controls Gallery, щелкните здесь, чтобы открыть приложение и увидеть WebView в действии.

Создать веб-представление

Изменить внешний вид веб-представления

WebView не является подклассом элемента управления, поэтому у него нет шаблона элемента управления. Однако вы можете установить различные свойства для управления некоторыми визуальными аспектами веб-представления.

  • Чтобы ограничить область отображения, задайте свойства Ширина и Высота.
  • Чтобы преобразовать, масштабировать, наклонить и повернуть веб-представление, используйте свойство RenderTransform.
  • Чтобы управлять прозрачностью веб-представления, задайте свойство "Непрозрачность".
  • Чтобы указать цвет для использования в качестве фона веб-страницы, когда в содержимом HTML не указан цвет, задайте свойство DefaultBackgroundColor.

Получить заголовок веб-страницы

Вы можете получить заголовок HTML-документа, отображаемого в данный момент в веб-представлении, с помощью свойства DocumentTitle.

События ввода и порядок табуляции

Хотя WebView не является подклассом Control, он получит фокус ввода с клавиатуры и будет участвовать в последовательности вкладок. Он предоставляет метод Focus и события GotFocus и LostFocus, но не имеет свойств, связанных с вкладками. Его положение в последовательности табуляции совпадает с его положением в порядке документов XAML. Последовательность вкладок включает все элементы содержимого веб-представления, которые могут получать фокус ввода.

Как указано в таблице Events на странице класса WebView, веб-представление не поддерживает большинство событий пользовательского ввода, унаследованных от UIElement, таких как KeyDown, KeyUp и PointerPressed. Вместо этого вы можете использовать InvokeScriptAsync с функцией eval JavaScript, чтобы использовать обработчики событий HTML, и использовать window.external.notify из обработчика событий HTML, чтобы уведомить приложение с помощью WebView.ScriptNotify.

Переход к содержимому

Веб-представление предоставляет несколько API для базовой навигации: GoBack, GoForward, Stop, Refresh, CanGoBack и CanGoForward. Вы можете использовать их, чтобы добавить в свое приложение типичные возможности просмотра веб-страниц.

Чтобы установить начальное содержимое веб-представления, задайте свойство Source в XAML. Синтаксический анализатор XAML автоматически преобразует строку в Uri.

Свойство Source можно задать в коде, но вместо этого вы обычно используете один из методов Navigate для загрузки контента в код.

Чтобы загрузить несжатое и незашифрованное содержимое из хранилищ данных LocalFolder или TemporaryFolder вашего приложения, используйте метод Navigate с Uri, который использует схему ms-appdata. Поддержка веб-просмотра для этой схемы требует, чтобы вы поместили свой контент во вложенную папку в локальной или временной папке. Это позволяет переходить к URI, таким как ms-appdata:///local/folder/file.html и ms-appdata:///temp/folder< /em>/файл.html . (Чтобы загрузить сжатые или зашифрованные файлы, см. NavigateToLocalStreamUri.)

Чтобы загрузить содержимое из пакета вашего приложения, используйте метод Navigate с Uri, использующим схему ms-appx-web.

Вы можете загрузить локальный контент через настраиваемый преобразователь с помощью метода NavigateToLocalStreamUri. Это позволяет использовать расширенные сценарии, такие как загрузка и кэширование веб-контента для автономного использования или извлечение контента из сжатого файла.

Ответ на события навигации

Элемент управления веб-представлением предоставляет несколько событий, которые можно использовать для реагирования на состояния навигации и загрузки содержимого. События происходят в следующем порядке для содержимого корневого веб-представления: NavigationStarting, ContentLoading, DOMContentLoaded, NavigationCompleted

NavigationStarting — происходит до того, как веб-представление перейдет к новому содержимому. Вы можете отменить навигацию в обработчике этого события, задав для свойства WebViewNavigationStartingEventArgs.Cancel значение true.

ContentLoading — происходит, когда веб-представление начинает загружать новый контент.

DOMContentLoaded — происходит, когда веб-представление завершает синтаксический анализ текущего содержимого HTML.

NavigationCompleted — возникает, когда веб-представление завершило загрузку текущего содержимого или если навигация не удалась. Чтобы определить, произошел ли сбой навигации, проверьте свойства IsSuccess и WebErrorStatus класса WebViewNavigationCompletedEventArgs.

Подобные события происходят в одном и том же порядке для каждого iframe в содержимом веб-представления:

    - Происходит перед тем, как кадр в веб-представлении переходит к новому содержимому. - Происходит, когда фрейм в веб-представлении начал загружать новый контент. - Происходит, когда фрейм в веб-представлении завершил синтаксический анализ своего текущего HTML-содержимого.- Происходит, когда фрейм в веб-представлении закончил загрузку своего содержимого.

Реагирование на возможные проблемы

Вы можете отреагировать на потенциальные проблемы с контентом, такие как длительные сценарии, контент, который не может загрузить веб-представление, и предупреждения о небезопасном контенте.

Ваше приложение может перестать отвечать на запросы во время выполнения скриптов. Событие LongRunningScriptDetected возникает периодически, пока веб-представление выполняет JavaScript, и дает возможность прервать сценарий. Чтобы определить, как долго выполняется сценарий, проверьте свойство ExecutionTime объекта WebViewLongRunningScriptDetectedEventArgs. Чтобы остановить сценарий, установите для свойства StopPageScriptExecution аргументов события значение true. Остановленный скрипт не будет выполняться снова, если он не будет перезагружен во время последующей навигации в веб-представлении.

Элемент управления веб-представлением не может содержать произвольные типы файлов. При попытке загрузить содержимое, которое веб-представление не может разместить, возникает событие UnviewableContentIdentified. Вы можете обработать это событие и уведомить пользователя или использовать класс Launcher для перенаправления файла во внешний браузер или другое приложение.

Аналогичным образом событие UnsupportedUriSchemeIdentified происходит, когда в веб-контенте вызывается неподдерживаемая схема URI, например fbconnect:// или mailto://. Вы можете обработать это событие, чтобы обеспечить настраиваемое поведение вместо того, чтобы позволить программе запуска системы по умолчанию запускать URI.

Событие UnsafeContentWarningDisplaying происходит, когда в веб-представлении отображается страница с предупреждением о содержимом, которое фильтр SmartScreen посчитал небезопасным. Если пользователь решит продолжить навигацию, при последующем переходе на страницу не будет отображаться предупреждение и не будет запущено событие.

Обработка особых случаев для содержимого веб-представления

Вы можете использовать свойство ContainsFullScreenElement и событие ContainsFullScreenElementChanged, чтобы обнаруживать, реагировать и включать полноэкранные возможности веб-контента, например полноэкранное воспроизведение видео. Например, вы можете использовать событие ContainsFullScreenElementChanged, чтобы изменить размер веб-представления, чтобы оно занимало все представление вашего приложения, или, как показано в следующем примере, перевести оконное приложение в полноэкранный режим, когда требуется полноэкранный веб-интерфейс.

Событие NewWindowRequested можно использовать для обработки случаев, когда размещенный веб-контент запрашивает отображение нового окна, например всплывающего окна. Вы можете использовать другой элемент управления WebView для отображения содержимого запрошенного окна.

Используйте событие PermissionRequested, чтобы включить веб-функции, требующие специальных возможностей. В настоящее время к ним относятся геолокация, хранилище IndexedDB, аудио и видео пользователя (например, с микрофона или веб-камеры). Если ваше приложение получает доступ к расположению пользователя или пользовательскому мультимедиа, вам все равно необходимо объявить эту возможность в манифесте приложения. Например, для приложения, использующего геолокацию, в Package.appxmanifest должны быть как минимум следующие объявления возможностей:

В дополнение к приложению, обрабатывающему событие PermissionRequested, пользователь должен одобрить стандартные системные диалоги для приложений, запрашивающих местоположение или мультимедийные возможности, чтобы эти функции были включены.

Вот пример того, как приложение может включить геолокацию на карте из Bing:

Если вашему приложению требуется пользовательский ввод или другие асинхронные операции для ответа на запрос разрешения, используйте метод Defer WebViewPermissionRequest, чтобы создать WebViewDeferredPermissionRequest, с которым можно будет работать позже. См. WebViewPermissionRequest.Defer.

Если пользователям необходимо безопасно выйти из веб-сайта, размещенного в веб-представлении, или в других случаях, когда важна безопасность, вызовите статический метод ClearTemporaryWebDataAsync, чтобы очистить все локально кэшированное содержимое из сеанса веб-представления. Это предотвращает доступ злоумышленников к конфиденциальным данным.

Взаимодействие с содержимым веб-представления

Вы можете взаимодействовать с содержимым веб-представления, используя метод InvokeScriptAsync для вызова или внедрения сценария в содержимое веб-представления, а также событие ScriptNotify для получения информации из содержимого веб-представления.

Чтобы вызвать JavaScript внутри содержимого веб-представления, используйте метод InvokeScriptAsync. Вызванный скрипт может возвращать только строковые значения.

Например, если содержимое веб-представления с именем webView1 содержит функцию с именем setDate, которая принимает 3 параметра, вы можете вызвать ее следующим образом.

Вы можете использовать InvokeScriptAsync с функцией оценки JavaScript для вставки содержимого на веб-страницу.

Здесь текст текстового поля XAML ( nameTextBox.Text ) записывается в элемент div на HTML-странице, размещенной в webView1.

Сценарии в содержимом веб-представления могут использовать window.external.notify со строковым параметром для отправки информации обратно в ваше приложение. Чтобы получать эти сообщения, обработайте событие ScriptNotify.

Доступ к среде выполнения Windows в веб-представлении

Метод AddWebAllowedObject можно использовать для внедрения экземпляра собственного класса из компонента среды выполнения Windows в контекст JavaScript веб-представления. Это обеспечивает полный доступ к собственным методам, свойствам и событиям этого объекта в содержимом JavaScript этого веб-представления. Класс должен быть дополнен атрибутом AllowForWeb.

Например, этот код внедряет экземпляр MyClass, импортированный из компонента среды выполнения Windows, в веб-представление.

Кроме того, доверенному содержимому JavaScript в веб-представлении можно разрешить прямой доступ к API среды выполнения Windows. Это обеспечивает мощные собственные возможности для веб-приложений, размещенных в веб-представлении. Чтобы включить эту функцию, URI для доверенного содержимого должен быть внесен в белый список в ApplicationContentUriRules приложения в Package.appxmanifest, а для WindowsRuntimeAccess специально задано значение «все».

В этом примере показан раздел манифеста приложения. Здесь локальному URI предоставляется доступ к среде выполнения Windows.

Варианты размещения веб-контента

Вы можете использовать свойство WebView.Settings (типа WebViewSettings), чтобы контролировать, включены ли JavaScript и IndexedDB. Например, если вы используете веб-представление для отображения строго статического контента, вы можете отключить JavaScript для лучшей производительности.

Захват содержимого веб-просмотра

Чтобы разрешить совместное использование содержимого веб-представления с другими приложениями, используйте метод CaptureSelectedContentToDataPackageAsync, который возвращает выбранное содержимое в виде DataPackage. Этот метод является асинхронным, поэтому необходимо использовать отсрочку, чтобы предотвратить возврат обработчика события DataRequested до завершения асинхронного вызова.

Чтобы получить изображение для предварительного просмотра текущего содержимого веб-представления, используйте метод CapturePreviewToStreamAsync. Этот метод создает образ текущего контента и записывает его в указанный поток.

Поведение потоков

По умолчанию содержимое веб-представления размещается в потоке пользовательского интерфейса на устройствах семейства настольных устройств и вне потока пользовательского интерфейса на всех остальных устройствах. Вы можете использовать статическое свойство WebView.DefaultExecutionMode, чтобы запросить поведение потоков по умолчанию для текущего клиента. При необходимости вы можете использовать конструктор WebView(WebViewExecutionMode), чтобы переопределить это поведение.

Примечание. При размещении содержимого в потоке пользовательского интерфейса на мобильных устройствах могут возникать проблемы с производительностью, поэтому при изменении DefaultExecutionMode обязательно проверяйте на всех целевых устройствах.

Веб-представление, в котором размещается содержимое из потока пользовательского интерфейса, несовместимо с родительскими элементами управления, которым требуются жесты для распространения от элемента управления веб-представления к родительскому элементу, например FlipView, ScrollViewer и другим связанным элементам управления. Эти элементы управления не смогут получать жесты, инициированные в автономном веб-представлении. Кроме того, печать внепотокового веб-контента напрямую не поддерживается — вместо этого следует печатать элемент с заливкой WebViewBrush.


Сегодня на мероприятии Windows Developer Day корпорация Майкрософт объявила о поддержке современного элемента управления WebView для приложений Win32. Современный элемент управления WebView основан на механизме рендеринга Microsoft Edge вместо старого веб-элемента управления на основе IE11. Поскольку он основан на последней версии браузера Edge, разработчики могут пользоваться новейшими функциями HTML, включая поддержку WebRTC и других.

Microsoft также планирует выпустить этот элемент управления с открытым исходным кодом в ближайшие месяцы.

Некоторые ссылки в статье могут быть недоступны для просмотра, поскольку вы используете блокировщик рекламы. Пожалуйста, добавьте нас в свой белый список, чтобы веб-сайт работал должным образом.


Windows 11 VS Windows 10: в чем разница?

Шэрон Беннет, 14 февраля 2022 г.

Внимание: Dell XPS 17 9700 сегодня дешевле на 360 долларов

Приложение Telegram Desktop обновлено с макетом оснастки Windows 11

Microsoft выпускает внештатное исправление для Windows 10 «Не удается подключиться к V.

Microsoft выпускает Windows 10 Build 19044.1499 на канал Release Preview


Предупреждение о скидках: Samsung 85″ Class Q70A Series QLED 4K UHD Smart Tizen TV

Телевизор Samsung 85″ Class Q70A серии QLED 4K UHD Smart Tizen оснащен огромным экраном для выдающихся визуальных характеристик и идеально спроектированной звуковой системой для насыщенного звука. Если эти вещи ар.

Lenovo Yoga 7i предлагает скидку в размере 300 долларов США по лучшим предложениям

Yoga 7i — один из самых популярных ноутбуков Lenovo. Он предлагает отличный дисплей, длительное время автономной работы и надежные компоненты. Но вот самый гигантский магнит этой модели: невероятная.

Уведомление о скидках: телевизор Samsung QN85A Neo QLED 4K Smart TV с диагональю экрана 85 дюймов

Samsung — один из самых надежных брендов, когда речь идет о телевизорах.Бренд предлагает невероятные функции, которые отличают его модели телевизоров от других. Один из них — Samsung QN85A, модель 85.

TCL 75R646 75″ 4K QLED SMART TV со скидкой 1000 долларов США на Best Buy

Поиск идеального телевизора может быть сложной задачей, поскольку высокие характеристики означают очень привлекательную цену. Вот почему все мы ждем Черную пятницу или рыскаем по магазинам, чтобы получить лучшие предложения.

Гарнитура BlueParrott B550-XT: скидка 15 % на Amazon

Водителям грузовиков, организаторам мероприятий и менеджерам понравится скидка на BlueParrott B550-XT на Amazon. Это позволит профессионалам сосредоточить свое внимание на работе по более низкой цене.

Умные часы Garmin Venu GPS со скидкой 100 долларов США при покупке по наиболее выгодной цене

Garmin Venu обладает всеми интеллектуальными функциями, доступными в других роскошных брендах, и может работать до 120 часов без подзарядки. Все эти невероятные вещи запечатаны искусно.

Уведомление о скидках: телевизор LG серии C1 OLED 4K UHD Smart WebOS

Всегда хотели иметь телевизор LG с передовыми технологиями, невероятным изображением и единственной в своем роде аудиосистемой? Вот хорошая новость, которую вы хотели бы услышать: вы можете сэкономить 200 долларов на LG C1 Series.

Samsung Galaxy Book Pro 360 предлагает снижение цены на 300 долларов

С учетом того, что в настоящее время грань между жизнью и работой стирается, ноутбук, который может с такой легкостью превратиться из партнера по работе в приятеля для отдыха, будет отличным приобретением. В этом.

Мини-проектор Bomaker WiFi: скидка 59% в Walmart!

Просмотр фильмов по телевизору удобен. Кино — это весело. Вы можете получить все эти впечатления с мини-проектором. Итак, мини-проектор Bomaker WiFi с огромной скидкой 59%.

Игровой ноутбук MSI Sword 15: скидка 300 долл. США и горячие характеристики

Игровой ноутбук MSI Sword 15 имеет все прелести, чтобы привлечь геймеров любого типа: процессор Intel Core i7, 8 ГБ оперативной памяти и видеокарта NVIDIA GeForce RTX 3050ti. Самая захватывающая часть ab.

Поддержка ARM64 теперь работает с Microsoft

WebView2 для Win32 C/C++ общедоступен

«Мы официально выпускаем совместимый с предыдущими версиями SDK WebView2 вместе с готовой средой выполнения WebView2. Их можно использовать в любом приложении Win32 C/C++, и они поддерживаются в существующих версиях Windows», — заявили в Microsoft.

Что такое WebView 2

Построенный поверх Edge Chromium, WebView2 позволяет разработчикам устранить зависимость от определенной версии Microsoft Edge. WebView 2 позволяет разработчикам приложений для Windows получать доступ к некоторым современным веб-технологиям как в существующих, так и в новых приложениях.

Благодаря новой среде выполнения WebView2 разработчики теперь могут размещать веб-контент в собственных приложениях. Короче говоря, WebView2 привносит лучшее из Интернета в ваше родное настольное приложение.

Преимущества WebView 2

  • Используйте всю веб-платформу, библиотеки, инструменты и таланты, существующие в веб-экосистеме.
  • Веб-разработка позволяет ускорить развертывание и итерацию.
  • Поддержка единообразного взаимодействия с пользователем в Windows 7, 8 и 10.
  • Доступ ко всему набору нативных API.
  • Добавление веб-кода в свою кодовую базу позволяет расширить возможности повторного использования на разных платформах.
  • Microsoft обеспечивает поддержку и добавляет новые запросы функций, когда WebView2 выпускается как GA.
  • Используйте последнюю версию Chromium с регулярными обновлениями платформы и исправлениями безопасности.
  • Упакуйте биты Chromium в свое приложение.
  • Добавляйте веб-компоненты в приложение по частям.

WebView 2 является частью Project Union, целью которого является устранение разрыва между приложениями Win32 и универсальной платформы Windows (UWP) для Windows 10.

Поддержка ARM64 теперь работает с Microsoft

Дата: 20 октября 2020 г. Метки: разработчики

[электронная почта защищена]


сообщить об этом объявлении

Читайте также: