WebView2 - 此站点正在尝试打开(应用程序)
WebView2 - This site is trying to open (application)
使用 WebView2 浏览器,当用户单击 link 打开另一个程序时,每次都会出现此提示。
有没有办法在 WebView2 中抑制这种情况?
我能理解您想绕过提示,但这是设计使然,我们无法更改。它是为安全而设计的。此提示是 Internet 上每个任意站点(加载到浏览器沙箱内)和计算机上完全信任的应用程序(运行 在浏览器沙箱外)之间的唯一提示。
我们唯一可以减少痛苦的方法是选中“始终允许...”复选框,这样下次就不会显示提示了。
您可以使用 NavigationStarting 事件取消导航到以您关心的 URI 方案开头的 URI,然后对该 URI 执行任何您喜欢的操作。例如,使用 URI 调用 ShellExecuteExW 或 Windows.System.Launcher.LaunchUriAsync,以便 OS 打开 URI。
正如 Yu Zhou 指出的那样,如果它的任意网站打开任意应用程序,就像在网络浏览器中那样,这是很危险的。如果你打算跳过此安全提示,你应该确保你拥有 Web 内容或相信 WebView2 中的 Web 内容不是恶意的。如果您要显示任意 URI 或用户提交的 Web 内容,则不应跳过提示。
使用 WebView2 浏览器,当用户单击 link 打开另一个程序时,每次都会出现此提示。
有没有办法在 WebView2 中抑制这种情况?
我能理解您想绕过提示,但这是设计使然,我们无法更改。它是为安全而设计的。此提示是 Internet 上每个任意站点(加载到浏览器沙箱内)和计算机上完全信任的应用程序(运行 在浏览器沙箱外)之间的唯一提示。
我们唯一可以减少痛苦的方法是选中“始终允许...”复选框,这样下次就不会显示提示了。
您可以使用 NavigationStarting 事件取消导航到以您关心的 URI 方案开头的 URI,然后对该 URI 执行任何您喜欢的操作。例如,使用 URI 调用 ShellExecuteExW 或 Windows.System.Launcher.LaunchUriAsync,以便 OS 打开 URI。
正如 Yu Zhou 指出的那样,如果它的任意网站打开任意应用程序,就像在网络浏览器中那样,这是很危险的。如果你打算跳过此安全提示,你应该确保你拥有 Web 内容或相信 WebView2 中的 Web 内容不是恶意的。如果您要显示任意 URI 或用户提交的 Web 内容,则不应跳过提示。