Blazor.Geolocation 2.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package Blazor.Geolocation --version 2.0.1                
NuGet\Install-Package Blazor.Geolocation -Version 2.0.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Blazor.Geolocation" Version="2.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Blazor.Geolocation --version 2.0.1                
#r "nuget: Blazor.Geolocation, 2.0.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Blazor.Geolocation as a Cake Addin
#addin nuget:?package=Blazor.Geolocation&version=2.0.1

// Install Blazor.Geolocation as a Cake Tool
#tool nuget:?package=Blazor.Geolocation&version=2.0.1                

Blazorators: The Source Generated geolocation JavaScript Interop library for Blazor Server

The Blazor.Geolocation package consumes the Blazor.SourceGenerators package. It exposes a source generated IGeolocation interface specific to Blazor WebAssembly and the geolocation Web API.

Get started

After the NuGet package is added as a reference, call the AddGeolocationServices method to register the IGeolocationService service type.

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddGeolocationServices();
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();

var app = builder.Build();

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();

app.MapControllers();
app.MapBlazorHub();
app.MapFallbackToPage("/_Host");

app.Run();

Anywhere needed within your Razor component, or Blazor client code — either @inject or [Inject] the IGeolocationService type. The interface takes the following shape:

#nullable enable
namespace Microsoft.JSInterop;

/// <summary>
/// Source generated interface definition of the <c>Geolocation</c> type.
/// </summary>
public interface IGeolocationService
{
	/// <summary>
	/// Source generated implementation of <c>window.navigator.geolocation.clearWatch</c>.
	/// <a href="https://developer.mozilla.org/docs/Web/API/Geolocation/clearWatch"></a>
	/// </summary>
	ValueTask ClearWatchAsync(double watchId);

	/// <summary>
	/// Source generated implementation of <c>window.navigator.geolocation.getCurrentPosition</c>.
	/// <a href="https://developer.mozilla.org/docs/Web/API/Geolocation/getCurrentPosition"></a>
	/// </summary>
	/// <param name="component">The calling Razor (or Blazor) component.</param>
	/// <param name="onSuccessCallbackMethodName">Expects the name of a 
    /// <c>"JSInvokableAttribute"</c> C# method with the following 
    /// <c>System.Action{GeolocationPosition}"</c>.</param>
	/// <param name="onErrorCallbackMethodName">Expects the name of a 
    /// <c>"JSInvokableAttribute"</c> C# method with the following 
    /// <c>System.Action{GeolocationPositionError}"</c>.</param>
	/// <param name="options">The <c>PositionOptions</c> value.</param>
	ValueTask GetCurrentPositionAsync<TComponent>(
        TComponent component, 
        string onSuccessCallbackMethodName, 
        string? onErrorCallbackMethodName = null, 
        PositionOptions? options = null) 
        where TComponent : class;

	/// <summary>
	/// Source generated implementation of <c>window.navigator.geolocation.watchPosition</c>.
	/// <a href="https://developer.mozilla.org/docs/Web/API/Geolocation/watchPosition"></a>
	/// </summary>
	/// <param name="component">The calling Razor (or Blazor) component.</param>
	/// <param name="onSuccessCallbackMethodName">Expects the name of a 
    /// <c>"JSInvokableAttribute"</c> C# method with the following 
    /// <c>System.Action{GeolocationPosition}"</c>.</param>
	/// <param name="onErrorCallbackMethodName">Expects the name of a 
    /// <c>"JSInvokableAttribute"</c> C# method with the following 
    /// <c>System.Action{GeolocationPositionError}"</c>.</param>
	/// <param name="options">The <c>PositionOptions</c> value.</param>
	ValueTask<double> WatchPositionAsync<TComponent>(
        TComponent component, 
        string onSuccessCallbackMethodName, 
        string? onErrorCallbackMethodName = null, 
        PositionOptions? options = null) 
        where TComponent : class;
}

Add JavaScript dependency

In the _Host.cshtml file, add the following:

<script src="_content/Blazor.Geolocation/blazorators.geolocation.g.js"></script>
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  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 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Blazor.Geolocation:

Package Downloads
Hexalith.Infrastructure.ClientAppOnServer

Hexalith is a set of libraries to build a micro-service architecture.

Hexalith.UI.PostalAddresses

Hexalith is a set of libraries to build a micro-service architecture.

Hexalith.PostalAddresses.UI

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
8.0.0 15,180 11/17/2023
8.0.0-rc.2.23480.2 401 10/13/2023
7.0.3 2,832 2/15/2023
7.0.2 317 2/7/2023
7.0.1 557 1/24/2023
7.0.0 425 1/11/2023
2.0.11 998 10/10/2022
2.0.10 515 5/19/2022
2.0.9 505 4/18/2022
2.0.8 487 4/14/2022
2.0.7 479 4/14/2022
2.0.6 492 4/7/2022
2.0.5 479 4/5/2022
2.0.3 459 4/5/2022
2.0.2 462 4/4/2022
2.0.1 596 4/4/2022