Blazor PWA在托管于Kestrel时不支持自动更新,但可以通过以下步骤手动更新:
{ "version": "1.0.0" }
这里会使用fetch到version.json中,获取版本号,并在加载资源时将版本号添加到blazor.webassembly.js的URI中。
@inject IJSRuntime JSRuntime
@code{ protected override async Task OnInitAsync() { await CheckForUpdatesAsync(); }
private async Task CheckForUpdatesAsync()
{
var appBase = NavigationManager.BaseUri;
var versionData = await JSRuntime.InvokeAsync("fetch", $"{appBase}version.json");
if (versionData.version != Version)
{
// Prompt user to update
}
}
private class VersionData
{
public string version { get; set; }
}
}
在OnInitAsync方法中检查版本号,并在版本号不匹配时提示用户更新。由于这里使用JavaScript运行时来执行fetch操作,所以