簡體   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