我需要检测我的 Blazor 服务器端应用程序的用户是否正在使用移动设备。有没有办法找出用户正在使用的设备?
我知道可以使用 JSRuntime 来实现,但有没有纯 C# 的方法来确定它呢?
我需要检测我的 Blazor 服务器端应用程序的用户是否正在使用移动设备。有没有办法找出用户正在使用的设备?
我知道可以使用 JSRuntime 来实现,但有没有纯 C# 的方法来确定它呢?
您可以在JavaScript端检测用户代理,并从C#端引用它。
请注意,iPad浏览器具有一些移动功能和一些桌面功能,因此如何处理iPad取决于您的选择。
这是从Sycfusion网站获取的脚本:
[wwwroot/script.js]
function isDevice() {
return /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i.test(navigator.userAgent);
}
[index.html/_Host.cshtml]
<head>
.....
<script src="~/script.js"></script>
....
</head>
[index.razor]
@page "/"
@inject IJSRuntime jsRuntime
<h1>Responsive</h1>
<button @onclick="FindResponsiveness">Find Device</button>
<h2>@isDevice</h2>
@code {
private string isDevice { get; set; }
private bool mobile { get; set; }
public async Task FindResponsiveness()
{
mobile = await jsRuntime.InvokeAsync<bool>("isDevice");
isDevice = mobile ? "Mobile" : "Desktop";
}
}
和Chris的答案一样,但这里是代码来源文章的链接:
此页面还包含一个链接,指向一个网站,该方法已被实现,以帮助您测试是否适用于您特定的用例和设备:
@if (IsWorker) { <WorkerComponent /> }
- Bennyboy1973