BlazorUpdater 1.2.1

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

// Install BlazorUpdater as a Cake Tool
#tool nuget:?package=BlazorUpdater&version=1.2.1

Blazor Updater NuGet Package

Framework support

  • .NET 6 or later version

Summary

This page makes sure that the users are notified if we deployed a new version of our site

How it works (brief)

  • PWAs will always fetch and update themselves but they do not use the updated content and Service Worker (SW)
  • PWAs only use their new SW when the user navigates away or the page gets closed
  • Page refresh does not activate the new SW
  • A small script listens for the SW state change and as soon as a new SW is installed and it is in the wait state a small notification bar is displayed - that can be customized - in which the user can skip waiting on the new SW and make installed the current one
  • NOTE it will make the page reload
  • NOTE When your site delpoyed first with this package, the update mechanism and the component styling might not work, but the second time all the scripts and styles will be available and it will work as intended

Usage

Relpace the Service Worker registration

  • Relpace the line below in the wwwroot\index.html

<script>navigator.serviceWorker.register('service-worker.js');</script>


<script src="_content/BlazorUpdater/updater.min.js"></script>


<script src="_content/BlazorUpdater/updater.min.js" worker="path/to/service-worker.js"></script>

Use the component in your app

  • The top of your MainLayout.razor component is a good place for it
@inherits LayoutComponentBase

<BlazorUpdater.Updater />

Modify your service worker

  • Add an eventlistener to it
// in service-worker.published.js
self.addEventListener('message', event => {
  if (event.data === 'SKIP_WAITING') self.skipWaiting();
});
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 is compatible.  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. 
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
1.2.1 201 11/25/2023
1.2.0 111 11/8/2023
1.1.0 752 9/18/2022
1.0.0 467 9/14/2022