如何从blazor webassembly项目的代码后面打开浏览器窗口/标签:

时间:2020-05-05 20:21:58

标签: browser blazor webassembly launcher

我正在将UWP应用程序转换为托管有ASP.NET Core的Blazor WebAssembly。

我在Index.razor中有我的标记代码,在Index.razor.cs中有我的标记代码。

在UWP项目中,我通过如下的onclick函数打开了浏览器窗口:

var成功= Windows.System.Launcher.LaunchUriAsync(targetPage);

我在Blazor项目的onclick事件中可以使用什么,而不会导致“发生未处理的错误”?

3 个答案:

答案 0 :(得分:0)

您按以下方式使用

剃刀文件

JSRuntime.InvokeVoidAsync(“ OpenWindow”);

html文件

revokeObjectURL

答案 1 :(得分:0)

您可以使用“ window.open”功能打开一个标签页:

@inject IJSRuntime JSRuntime;
....
await JSRuntime.InvokeAsync<string>("open", $"https://www.mysite/mypage", "_blank");

如果该页面位于您网站的内部,则可以使用基本uri:

@inject NavigationManager Navigation
@inject IJSRuntime JSRuntime;
...
await JSRuntime.InvokeAsync<string>("open", $"{Navigation.BaseUri}/mypage", "_blank");

答案 2 :(得分:-1)

为什么不直接使用 NavigationManager 中的构建?

Navigation.NavigateTo(a_url, true);

诀窍是使用 force 参数。

快乐编码。