This is a browser detect component for Blazor WebAssembly and Blazor Server with .NET6.
If you need help, info or some device is not detected correctly, leave your message in the Forum.
Read the full post on PureSourceCode.com:
Now, you can try your component by yourself from the website. Try it now!
Fist, you have to add the component from NuGet. Then, open your _Imports.razor
and add the following:
@using PSC.Blazor.Components.BrowserDetect
Property | Value |
---|---|
BrowserName | Name of the browser |
BrowserMajor | Major version of the browser |
BrowserVersion | Version of the browser |
CPUArchitect | If it is possible, the component detect the CPU architecture of the machine |
DeviceModel | Device model (if it is possible) |
DeviceType | Device type (if it is possible) |
DeviceVendor | Device Vendor (if it is possible) |
EngineName | Browser engine name |
EngineVersion | Browser engine version |
GPURenderer | Type of the GPU renderer |
GPUVendor | Vendor of the GPU |
IsDesktop | Detect if the device is a desktop computer |
IsMobile | Detect if the device is a mobile |
IsTablet | Detect if the device is a tablet |
IsAndroid | Detect if the device is an Android device |
IsIPhone | Detect if the device is an iPhone or iPod |
IsIPad | Detect if the device is an iPad (any version) |
IsIPadPro | Detect if the device is an iPad Pro |
OSName | Detect the operating system |
OSVersion | Version of the operating system |
ScreenResolution | Detect the screen resolution |
TimeZone | Read the time zone |
UserAgent | The full user agent |
To detect the browser and all the other details from the user, it is not always accurate. For example, if the client has Windows 11
there is no way to
return the correct version of the operating system. If you have a MacOS
, again JavaScript can't detect from the navigator
string any info.
The JavaScript can detect the OSName
, Windows
or MacOS
but not the exact version.
To detect in a correct way the correct version of the operating system and the architecture of the CPU, the component has to run few tests that take time.
For this reason I added 2 events in the component:
- OSArchitectureUpdate
- OSVersionUpdate
So, if you want to receive the notification when of the correct version of the operating system and the CPU architecture, the component is like this code:
<BrowserDetect @bind-BrowserInfo="@Info"
OSArchitectureUpdate="WindowsArchitectureString"
OSVersionUpdate="WindowsUpdateString" />
then the functions look like
public BrowserInfo? Info { get; set; }
public string? OSInfo { get; set; } = "";
public string? OSCPUInfoString { get; set; }
private void OSArchitectureString(string cpu)
{
OSCPUInfoString = cpu;
}
private void OSUpdateString(string version)
{
OSInfo = version;
}
Both events return a simple string with the values. For example:
- if the operating system is
Windows 11
, theOSUpdateString
receives the string11
; - if the operating system is
Windows 10 1809
, theOSUpdateString
receives the string10 (1809)
- if the CPU is 32 bit, the
OSArchitectureString
, receives the stringx86
- ARM
- ARM 64
- x86_64
- x86
- ARM64
- ARM32
Version | platformVersion |
---|---|
Win7/8/8.1 | 7/8/8.1 |
Win10 1507 | 10 (1507) |
Win10 1511 | 10 (1511) |
Win10 1607 | 10 (1607) |
Win10 1703 | 10 (1703) |
Win10 1709 | 10 (1709) |
Win10 1803 | 10 (1803) |
Win10 1809 | 10 (1809) |
Win10 1903 | 10 (1903 or 10 1909) |
Win10 1909 | 10 (1903 or 10 1909) |
Win10 2004 | 10 (2004 or 20H2 or 21H1 or 21H2) |
Win10 20H2 | 10 (2004 or 20H2 or 21H1 or 21H2) |
Win10 21H1 | 10 (2004 or 20H2 or 21H1 or 21H2) |
Win10 21H2 | 10 (2004 or 20H2 or 21H1 or 21H2) |
Win11 | 11 |
PureSourceCode.com is my personal blog where I publish posts about technologies and in particular source code and projects in .NET.
In the last few months, I created a lot of components for Blazor WebAssembly and Blazor Server.
My name is Enrico Rossini and you can contact me via:
Component name | Forum | NuGet | Website | Description |
---|---|---|---|---|
AnchorLink | Forum | An anchor link is a web link that allows users to leapfrog to a specific point on a website page. It saves them the need to scroll and skim read and makes navigation easier. This component is for Blazor WebAssembly and Blazor Server | ||
Autocomplete for Blazor | Forum | Simple and flexible autocomplete type-ahead functionality for Blazor WebAssembly and Blazor Server | ||
Browser Detect for Blazor | Forum | Demo | Browser detect for Blazor WebAssembly and Blazor Server | |
ChartJs for Blazor | Forum | Demo | Add beautiful graphs based on ChartJs in your Blazor application | |
Clippy for Blazor | Forum | Demo | Do you miss Clippy? Here the implementation for Blazor | |
CodeSnipper for Blazor | Forum | Add code snippet in your Blazor pages for 196 programming languages with 243 styles | ||
Copy To Clipboard | Forum | Add a button to copy text in the clipboard | ||
DataTable for Blazor | Forum | Demo | DataTable component for Blazor WebAssembly and Blazor Server | |
Google Tag Manager | Forum | Demo | Adds Google Tag Manager to the application and manages communication with GTM JavaScript (data layer). | |
Icons and flags for Blazor | Forum | Library with a lot of SVG icons and SVG flags to use in your Razor pages | ||
ImageSelect for Blazor | Forum | This is a Blazor component to display a dropdown list with images based on ms-Dropdown by Marghoob Suleman. This component is built with NET7 for Blazor WebAssembly and Blazor Server | ||
Markdown editor for Blazor | Forum | Demo | This is a Markdown Editor for use in Blazor. It contains a live preview as well as an embeded help guide for users. | |
Modal dialog for Blazor | Forum | Simple Modal Dialog for Blazor WebAssembly | ||
Modal windows for Blazor | Forum | Modal Windows for Blazor WebAssembly | ||
Quill for Blazor | Forum | Quill Component is a custom reusable control that allows us to easily consume Quill and place multiple instances of it on a single page in our Blazor application | ||
ScrollTabs | Tabs with nice scroll (no scrollbar) and responsive | |||
Segment for Blazor | Forum | This is a Segment component for Blazor Web Assembly and Blazor Server | ||
Tabs for Blazor | Forum | This is a Tabs component for Blazor Web Assembly and Blazor Server | ||
Timeline for Blazor | Forum | This is a new responsive timeline for Blazor Web Assembly and Blazor Server | ||
Toast for Blazor | Forum | Toast notification for Blazor applications | ||
Tours for Blazor | Forum | Guide your users in your Blazor applications | ||
TreeView for Blazor | Forum | This component is a native Blazor TreeView component for Blazor WebAssembly and Blazor Server. The component is built with .NET7. | ||
WorldMap for Blazor | Forum | Demo | Show world maps with your data |
Component name | Forum | NuGet | Description |
---|---|---|---|
PSC.Evaluator | Forum | PSC.Evaluator is a mathematical expressions evaluator library written in C#. Allows to evaluate mathematical, boolean, string and datetime expressions. | |
PSC.Extensions | Forum | A lot of functions for .NET5 in a NuGet package that you can download for free. We collected in this package functions for everyday work to help you with claim, strings, enums, date and time, expressions... |
- Write a reusable Blazor component
- Getting Started With C# And Blazor
- Setting Up A Blazor WebAssembly Application
- Working With Blazor Component Model
- Secure Blazor WebAssembly With IdentityServer4
- Blazor Using HttpClient With Authentication
- InputSelect component for enumerations in Blazor
- Use LocalStorage with Blazor WebAssembly
- Modal Dialog component for Blazor
- Create Tooltip component for Blazor
- Consume ASP.NET Core Razor components from Razor class libraries | Microsoft Docs
- ChartJs component for Blazor
- Labels and OnClickChart for ChartJs