Cutec.Blazor.WebAPIs 2.0.0

dotnet add package Cutec.Blazor.WebAPIs --version 2.0.0                
NuGet\Install-Package Cutec.Blazor.WebAPIs -Version 2.0.0                
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="Cutec.Blazor.WebAPIs" Version="2.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Cutec.Blazor.WebAPIs --version 2.0.0                
#r "nuget: Cutec.Blazor.WebAPIs, 2.0.0"                
#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 Cutec.Blazor.WebAPIs as a Cake Addin
#addin nuget:?package=Cutec.Blazor.WebAPIs&version=2.0.0

// Install Cutec.Blazor.WebAPIs as a Cake Tool
#tool nuget:?package=Cutec.Blazor.WebAPIs&version=2.0.0                

Blazor.WebAPIs

This is a Blazor library for accessing APIs provided by web browser: IndexedDB, window.localStorage...(more to come)

To use the library

  1. Instal NuGet package: Cutec.Blazor.WebAPIs.
  2. Add script reference to index.html: <script src="_content/Cutec.Blazor.WebAPIs/All.js"></script>
  3. Register services; builder.Services.AddBlazorWebAPIs();. Alternatively, you can register the needed indivitial API, ex. builder.Services.AddWebStorage();

IndexedDB APIs

Warning: If Key/AutoIncrement definition is changed, the object store will be re-created and data will be lost.

It is based on idb.

Inherit from IndexedDb:

public class DbContext : IndexedDb
{
    public ObjectStore<ToDo> ToDos { get; set; }
}    

In Program.cs

builder.Services.AddIndexedDB<DbContext>();

var host = builder.Build();

await host.Services.UseIndexedDbAsync<DbContext>(options =>
{
  options.Name = "MyDb";
  options.Version = 1;
});

Inject DbContent into Components:

[Inject] private DbContext db { get; set; }

...

var toDos = await db.ToDos.GetAllAsync();

Retrieving

  • GetByKeyAsync, GetFirstByKeyRangeAsync, GetFirstFromIndexAsync
  • GetAllAsync, GetAllFromIndexAsync, GetAllByIndexValueAsync, GetAllByKeyListAsync
  • GetAllKeysAsync, GetAllKeysFromIndexAsync, GetAllKeysByIndexValueAsync, GetFirstKeyAsync
  • GetAllIndexValuesAsync
  • CountAsync

Update

  • PutAsync
  • PutListAsync

Delete

  • DeleteByKeyAsync
  • DeleteByKeyListAsync
  • ClearAsync
  • ClearDbAsync

LocalStorage/SessionStorage

Inject LocalStorage:

[Inject] private LocalStorage localStorage { get; set; }

APIs

int Length
string Key(int index)
string GetItem(string keyName)
void SetItem(string keyName, string keyValue)
void RemoveItem(string keyName)
void Clear()

T GetItem<T>(string keyName) where T : class
void SetItem<T>(string keyName, T item) where T : class

Geolocation

Inject and use Geolocation.

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 100 8/7/2024
1.3.3 560 4/1/2023
1.3.2 514 1/27/2022
1.3.1 315 12/8/2021
1.3.0 382 8/24/2021
1.2.0 321 7/6/2021
1.1.0 372 6/11/2021
1.0.1 360 6/10/2021