检测 WebView2 与独立的 Edge 浏览器?
Detecting WebView2 vs standalone Edge browser?
我有一个页面需要以不同方式呈现,具体取决于它是从 WebView2 组件(在另一个应用程序内)还是从独立的 Microsoft Edge 浏览器查看。我尝试通过用户代理字符串区分两者,但字符串或多或少相同(均包含“Edg”)。谁有办法区分WebView2和Edge浏览器?
Web 内容没有完美的方法来识别 WebView2 中的 运行,因为 WebView2 的主机应用程序可以自定义 WebView2 的许多方面。
例如,主机应用程序可以通过 CoreWebView2Settings.UserAgent
更改用户代理,使其显示为 Chrome 或任何其他浏览器。或者主机应用程序可以使用 CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync
注入脚本并更改 DOM 或脚本中的其他对象。
但是,如果您要确定您的网络内容是否在您自己的应用中 运行,您可以使用我上面提到的相同自定义作为主机应用向网络内容发送信号的方式Web 内容 运行 在 WebView2 中。
我有一个页面需要以不同方式呈现,具体取决于它是从 WebView2 组件(在另一个应用程序内)还是从独立的 Microsoft Edge 浏览器查看。我尝试通过用户代理字符串区分两者,但字符串或多或少相同(均包含“Edg”)。谁有办法区分WebView2和Edge浏览器?
Web 内容没有完美的方法来识别 WebView2 中的 运行,因为 WebView2 的主机应用程序可以自定义 WebView2 的许多方面。
例如,主机应用程序可以通过 CoreWebView2Settings.UserAgent
更改用户代理,使其显示为 Chrome 或任何其他浏览器。或者主机应用程序可以使用 CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync
注入脚本并更改 DOM 或脚本中的其他对象。
但是,如果您要确定您的网络内容是否在您自己的应用中 运行,您可以使用我上面提到的相同自定义作为主机应用向网络内容发送信号的方式Web 内容 运行 在 WebView2 中。