/Blazor.Sensors

Blazor interop for browers sensor apis

Primary LanguageC#MIT LicenseMIT

AspNetMonsters.Blazor.Sensors

This package provides Blazor applications with access to the browser sensor apis. Currently only the AmbientLightSensor api is supported.

Usage

  1. In your Blazor app, add the AspNetMonsters.Blazor.Sensors NuGet package

    Install-Package AspNetMonsters.Blazor.Sensors -IncludePrerelease
    
  2. In your Blazor app's Startup.cs ConfigureServices method, register the AmbientLightSensorService.

    services.AddSingleton<AmbientLightSensorService>();
    
  3. Now you can inject the AmbientLightSensorService into any Blazor page and use it like this:

    @using AspNetMonsters.Blazor.Sensors
    @inject AmbientLightSensorService sensorService
    <h1>Let there be light!</h1>
    
    <h3>@sensor?.Illuminance</h3>
    
    
    <button onclick=@Stop>Stop</button>
    <button onclick=@Start>Start</button>
    
    
    @functions
    {
        AmbientLightSensor sensor;
    
        protected override async Task OnInitAsync()
        {
            await Start();
        }
        
        private async Task Start()
        {
            sensor = await sensorService.StartReading(() =>
            {
                StateHasChanged();
            });
        }
    
        private async Task Stop()
        {
            if (sensor != null)
            {
                await sensorService.StopReading(sensor);
                sensor = null;
            }
        }
    }