繁体   English   中英

如何在 C#、WinUI 3 中打开新的浏览器 window?

[英]How to open new browser window in C#, WinUI 3?

我正在尝试在新浏览器 window 中打开 URL。 具体来说,一个新的浏览器 window 以下代码在默认浏览器中启动 URL,但始终在现有浏览器 window (如果存在)中将 URL 作为新选项卡打开。 我想在新浏览器 window 中启动新选项卡,无论一个(或多个)浏览器 windows 是否已经打开。

此代码在 WinUI 3 中启动 URL(在现有浏览器窗口的新选项卡中),似乎是最简单的:

Windows.System.Launcher.LaunchUriAsync(new Uri("http://google.com"));

这段代码做同样的事情,也可以在 WinUI 3 中工作(感谢这里的答案):

Process myProcess = new Process();
myProcess.StartInfo.UseShellExecute = true; 
myProcess.StartInfo.FileName = "http://google.com";
myProcess.Start();

请注意,以下代码在 WinUI 3 中根本不起作用

System.Diagnostics.Process.Start("http://google.com");

编辑:其他排除方法

Process.Start()的以下修改适用于 WinUI 3,但与上述方法一样,仅在现有浏览器 windows 中打开新选项卡,因此不是上述问题的解决方案(另请注意,它强制使用特定浏览器,而不是比默认浏览器):

Process.Start("C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe", "http://google.com");

您可以通过在 webview2 中调用 JavaScript 命令来实现:

await webView.ExecuteScriptAsync("window.open('http://www.bing.com');");

确保您已经设置了webView的来源,或者您已经调用EnsureCoreWebView2Async()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM