У меня есть страница, которая должна отображаться по-разному в зависимости от того, просматривается ли она из компонента WebView2 (внутри другого приложения) или из автономного браузера Microsoft Edge. Я попытался различить их через строку пользовательского агента, но строки более или менее идентичны (обе содержат «Edg»). У кого-нибудь есть способ отличить браузер WebView2 от браузера Edge?
Пользовательские агенты одинаковы для браузера WebView2 и Edge. Если вы являетесь владельцем приложения WebView2, вы можете заплатить за него установить новый пользовательский агент. В противном случае кажется, что нет другого способа отличить браузер WebView2 от браузера Edge.
Вы даже не сказали, является ли это вашим приложением, которое вы хотите изменить, или вам нужно вообще определить браузер (на сервере).
Для веб-контента не существует идеального способа определить, что он работает в WebView2, потому что хост-приложение WebView2 может настраивать множество аспектов WebView2.
Например, хост-приложение может изменить пользовательский агент через CoreWebView2Settings.UserAgent
, чтобы он выглядел как Chrome или любой другой браузер. Или хост-приложение может внедрить скрипт с помощью CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync
и изменить DOM или другие объекты в скрипте.
Однако, если вы пытаетесь определить, работает ли ваш веб-контент в вашем собственном приложении, вы можете использовать те же самые настройки, которые я упоминал выше, как способ для хост-приложения сигнализировать веб-контенту, что веб-контент выполняется в WebView2. .
Если ваше собственное приложение открывает страницу, вы можете указать это в параметрах поиска:
https://example.com/?target=webview2
.