Рекомендации по разработке приложений WebView2

Мы рекомендуем следовать следующим рекомендациям по разработке производственных приложений WebView2.

Использование актуальной среды выполнения WebView2

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

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

См. Всегда актуальная или исправленная версия среды выполнения WebView2.

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

Проверьте, установлена ли среда выполнения WebView2.

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

См. раздел Определение того, установлена ли уже среда выполнения WebView2 в Распространение приложения и среда выполнения WebView2.

Обработка обновлений среды выполнения WebView2

При использовании актуальной среды выполнения WebView2 обрабатывать обновления актуальной среды выполнения WebView2. Обновления актуальной среды выполнения WebView2 загружаются автоматически, но запущенное приложение WebView2 будет продолжать использовать текущую версию среды выполнения WebView2, в котором могут отсутствовать обновления для системы безопасности. Чтобы принять новую версию, приложение должно освободить все ссылки на предыдущие объекты WebView2 или перезапуститься. Реализация NewBrowserVersionAvailable обработчика событий может предложить пользователям перезапустить приложение для получения обновлений с рекомендацией сохранить состояние пользователя перед выходом для плавного перехода.

См. раздел "Обработка обновлений актуальной среды выполнения WebView2 " в статье "Распространение приложения и среды выполнения WebView2".

Тестирование прямой совместимости с помощью предварительных каналов Microsoft Edge

При использовании актуальной среды выполнения WebView2 выполняйте тесты прямой совместимости с помощью предварительных каналов Microsoft Edge (бета-версии, разработки или канала Canary).

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

Следуйте указаниям по предварительному тестированию с использованием предварительных каналов Microsoft Edge и Self-host, развернув предварительные каналы.

Использование функции обнаружения для новых API

При использовании актуальной среды выполнения WebView2 используйте функцию обнаружения для проверки того, поддерживает ли установленная среда выполнения недавно добавленные API. Чтобы запустить приложение WebView2, разработанное с помощью определенной версии SDK WebView2, на клиенте должна быть установлена совместимая версия среды выполнения WebView2.

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

См. раздел "Обнаружение компонентов", чтобы проверить, поддерживает ли установленная среда выполнения недавно добавленные API-интерфейсы в предварительной версии и пакетах SDK для WebView2.

Регулярно обновляйтесь при использовании среды выполнения неизменяемой версии

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

См. следующие статьи:

Управление временем существования папки данных пользователя

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

См. следующие статьи:

Обработка сбоев или выходов процессов среды выполнения

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

См. статью Обработка событий, связанных с процессом, в WebView2.

Обработчики событий в объекте среды

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

Чтобы предотвратить утечку памяти, выполните следующие действия.

  • Для любого добавленного обработчика событий удалите обработчик событий перед освобождением объекта окружения.

  • Избегайте удержания ссылки на объект окружения в обработчике событий. Вместо этого обработчик событий может получить доступ к объекту окружения sender из аргумента обратного вызова «событие завершено».

  • Если вы хотите, чтобы приложение содержало ссылку на объект WebView2, по возможности используйте слабую ссылку.

Соблюдение рекомендаций по безопасности

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

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

Следуйте инструкциям в статье "Разработка безопасных приложений WebView2".

См. также

Справка по WebView2:

Документация по Microsoft Edge Enterprise: