在MAUI WebView中运行的Blazor服务器应用程序是否能够使用JS Interop之类的东西与本地设备交互?
当然,您不需要JS interop。它只是在平台上运行,所以你可以利用那里的一切。
根据您的体系结构和代码的结构,有多种方法可以实现。例如,如果它已经在Essentials中了,您可以添加.NET MAUI Essentials并使用这些API。我在这里有一个视频,代码在这里。
如果你真的需要做其他事情,你可以利用依赖注入。例如,在我链接的repo(主要是一个文件>新项目(中,您可以在MauiProgram.cs
中看到WeatherForecastService
是如何注册的:builder.Services.AddSingleton<WeatherForecastService>();
现在,在您的Blazor代码中,您可以让它通过@inject WeatherForecastService ForecastService
注入,并将其用作:
@code {
private WeatherForecast[] forecasts;
private Location location;
protected override async Task OnInitializedAsync()
{
forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
}
}
您可以通过这种方式创建自己的服务来访问平台传感器或API,像这样注入并从Blazor使用它。