Рекомендации по разработке приложений WebView2
Мы рекомендуем следующие рекомендации по разработке рабочих приложений WebView2.
Использование среды выполнения Evergreen WebView2
Мы рекомендуем использовать среду выполнения Evergreen WebView2 для большинства приложений WebView2, а не среду выполнения фиксированной версии.
Среда выполнения Evergreen автоматически обновляется на клиенте, чтобы в приложении WebView2 были доступны последние функции и исправления для системы безопасности. Среда выполнения Evergreen также требует меньше места на диске, чем среда выполнения фиксированной версии. Фиксированное распределение среды выполнения версий рекомендуется только для приложений со строгими требованиями к совместимости.
Дополнительные сведения о преимуществах Evergreen Runtime см. в статье Сведения о режиме распространения Evergreen Runtimeстатьи Распространение приложения и среды выполнения WebView2.
Чтобы убедиться, что приложение WebView2 хорошо работает со средой выполнения Evergreen WebView2, используйте рекомендации, приведенные в следующих подразделах:
- Убедитесь, что установлена среда выполнения WebView2.
- Обработка обновлений среды выполнения WebView2.
- Проводите тестирование совместимости с помощью каналов предварительной версии Edge.
- Используйте обнаружение функций для новых API.
Убедитесь, что установлена среда выполнения WebView2.
При использовании среды выполнения Evergreen WebView2 перед тем, как приложение будет использовать элемент управления WebView2, программно проверьте, установлена ли на клиенте среда выполнения Evergreen WebView2.
См . статью Обнаружение уже установленной среды выполнения WebView2 в разделе Распространение приложения и среды выполнения WebView2.
Обработка обновлений среды выполнения WebView2
При использовании среды выполнения Evergreen WebView2 обработайте обновления среды выполнения Evergreen WebView2. Обновления среды выполнения Evergreen WebView2 загружаются автоматически, но работающее приложение WebView2 будет продолжать использовать текущую версию среды выполнения WebView2, при этом, возможно, отсутствуют обновления для системы безопасности. Чтобы принять новую версию, приложение должно освободить все ссылки на предыдущие объекты WebView2 или перезапустить. Реализация обработчика NewBrowserVersionAvailable
событий может предложить пользователям перезапустить приложение для обновления с рекомендацией сохранить состояние пользователя перед выходом для простого перехода.
См . раздел Обработка обновлений среды выполнения Evergreen WebView2 в разделе Распространение приложения и среды выполнения WebView2.
Тестирование совместимости с помощью каналов предварительной версии Edge
При использовании среды выполнения Evergreen WebView2 выполните тесты совместимости вперед с помощью каналов предварительной версии Microsoft Edge (бета-версия, разработка или Canary).
Так как среда выполнения Evergreen обновляется автоматически, следует регулярно выполнять тесты совместимости, чтобы убедиться, что приложение WebView2 будет продолжать работать должным образом в новой версии среды выполнения. Это можно сделать, протестировав веб-содержимое в элементе управления WebView2 в каналах предварительной версии Microsoft Edge.
Следуйте указаниям в разделе Предварительное тестирование с помощью каналов предварительной версии и самостоятельного размещения путем развертывания каналов предварительной версии.
Использование обнаружения функций для новых API
При использовании среды выполнения Evergreen WebView2 используйте обнаружение компонентов, чтобы проверить, поддерживает ли установленная среда выполнения недавно добавленные API. Чтобы запустить приложение WebView2, разработанное с помощью определенной версии пакета SDK для Webview2, на клиенте должна быть установлена совместимая версия среды выполнения WebView2.
При использовании среды выполнения Evergreen WebView2 существуют некоторые сценарии, в которых среда выполнения на клиенте не была автоматически обновлена до последней версии. Кроме того, некоторые групповые политики приостанавливают обновление среды выполнения. В результате при отправке обновления в приложение WebView2 приложение может не работать, если оно попытается вызвать более новые API, недоступные в установленной среде выполнения клиента. Поэтому следует использовать обнаружение компонентов, чтобы убедиться, что новые API, используемые приложением WebView2, поддерживаются средой выполнения WebView2, установленной на клиенте.
Ознакомьтесь с разделом Определение компонентов, чтобы проверить, поддерживает ли установленная среда выполнения недавно добавленные API в пакетах SDK для предварительного выпуска и выпуска для WebView2.
Регулярное обновление при использовании среды выполнения фиксированной версии
Если вы используете среду выполнения WebView2 с фиксированной версией, убедитесь, что вы регулярно обновляете среду выполнения WebView2, упакованную с приложением, чтобы снизить риски безопасности. Чтобы определить, как часто следует обновлять среду выполнения фиксированной версии, следует рассмотреть модель угроз приложения. Например, при использовании стороннего содержимого в приложениях Webview2 всегда учитывайте, что содержимое не является доверенным.
Дополнительные сведения о режиме распространения среды выполнения фиксированных версий см. в статье Распространение приложения и среды выполнения WebView2.
Управление временем существования папки данных пользователя
Приложения WebView2 создают папку данных пользователя для хранения таких данных, как файлы cookie, учетные данные и разрешения. После создания папки данных пользователя приложение отвечает за управление временем существования папки данных пользователя. Например, приложение должно выполнить очистку при удалении приложения.
Дополнительные рекомендации по управлению папкой данных пользователя см. в разделе Управление папкой данных пользователя.
Обработка сбоев или выходов процесса среды выполнения
Приложения WebView2 поддерживаются набором процессов среды выполнения, которые выполняются вместе с процессом приложения. Эти вспомогательные процессы среды выполнения могут завершиться по различным причинам, например нехваткой памяти или завершением пользователем. Приложение WebView2 должно обрабатывать эти события, связанные с процессом, чтобы гарантировать, что приложение может восстановиться после сбоев и продолжить бесперебойную работу.
Дополнительные сведения о том, как обрабатывать связанные с процессом события в приложениях WebView2, см. в статье Обработка связанных с процессом событий в WebView2 .
Обработчики событий в объекте среды
Если какой-либо из обработчиков событий приложения в объекте среды содержит ссылку на объект среды и приложение просто освобождает ссылку на среду и обработчики событий, не удаляя обработчики событий, между объектом среды и объектами обработчика может быть циклическая ссылка, что приведет к утечке памяти.
Чтобы предотвратить такую утечку памяти, выполните следующие действия:
Для любого добавленного обработчика событий удалите обработчик событий перед освобождением объекта среды.
Избегайте хранения ссылки на объект среды в обработчике событий. Вместо этого обработчик событий может получить доступ к объекту
sender
среды из аргумента обратного вызова event completed.Если вы хотите, чтобы приложение держало ссылку на объект WebView2, по возможности используйте слабую ссылку.
Следуйте рекомендациям по обеспечению безопасности
WebView2 позволяет размещать веб-содержимое в собственных приложениях, предоставляя такие преимущества, как использование веб-пользовательского интерфейса, доступ к функциям веб-платформы и совместное использование кода на разных платформах.
Однако размещение веб-содержимого также может привести к уязвимостям. Чтобы избежать уязвимостей, которые могут возникнуть из-за размещения веб-содержимого в собственном приложении, обязательно разработайте приложение WebView2, чтобы тщательно отслеживать взаимодействие между веб-содержимым и ведущим приложением.
Следуйте инструкциям в статье Разработка безопасных приложений WebView2.