CurrentDevice 1.0.2
See the version list below for details.
dotnet add package CurrentDevice --version 1.0.2
NuGet\Install-Package CurrentDevice -Version 1.0.2
<PackageReference Include="CurrentDevice" Version="1.0.2" />
paket add CurrentDevice --version 1.0.2
#r "nuget: CurrentDevice, 1.0.2"
// Install CurrentDevice as a Cake Addin #addin nuget:?package=CurrentDevice&version=1.0.2 // Install CurrentDevice as a Cake Tool #tool nuget:?package=CurrentDevice&version=1.0.2
CurrentDevice
Device/User agent detector made in Blazor for Blazor. This library is a port of CurrentDevice
No need to use JavaScript interop to detect the device or user agent. This library is a pure C# implementation of the original library.
This library is trimmable and does not rely on Javascript (no need to add a <script> tag somewhere)
Nuget CLI
dotnet add package CurrentDevice
Csproj
<PackageReference Include="CurrentDevice" Version="1.0.2" />
Add reference in _Imports.razor
@using CurrentDevice
Usage
Add the service in your services method
var builder = WebAssemblyHostBuilder.CreateDefault(args);
//... Shortend for brevity
builder.Services.AddCurrentDeviceService();
//... Shortend for brevity
await builder.Build().RunAsync();
Inject the service in your component
@code{
[Inject] ICurrentDeviceService CurrentDeviceService { get; set; }
}
or
@inject ICurrentDeviceService CurrentDeviceService
Usage in your component
Blazor WASM
protected override async Task OnInitializedAsync()
{
UserAgent = await CurrentDeviceService.GetUserAgent();
}
Blazor Server
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
UserAgent = await CurrentDeviceService.GetUserAgent();
StateHasChanged();
}
}
Device Methods
To see a real world example you can visit the example here on Github
Technical information
Lifetimes
Eventhough in DI it get added as scoped, blazor WASM will treat it as a singleton more on that here meaning that if an user changes User agents and refreshes the page it'll still display old data untill a page refresh
For blazor server it is scoped and every page request will have up to date information, interal responses get cached clientside per request so that if you check for Ipad then iOs it'll save some requests to the browser
License
MIT
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Microsoft.AspNetCore.Components (>= 3.1.3)
- Microsoft.AspNetCore.Components.Web (>= 3.1.3)
-
net8.0
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Breaking change: Namespace name changed, internal dictionary should longer cause exceptions