Blazor WebAssembly를 사용하여 PWA를 만드는 간단한 방법
실행 중인 프레젠테이션
이 강좌에서, Blazor FIRE Calculator 프로젝트를 설치 가능한 점진적인 웹 응용 프로그램으로 전환하는 과정을 안내합니다.
이 프로젝트의 전체 코드는 available on GitHub이다.
유용한 Nuget 패키지
Blazor 응용 프로그램을 PWA로 바꾸려고 시도할 때 가장 친한 친구는 SQL MisterMagoo의 Blazor.PWA.MSBuild입니다.본문을 작성할 때, v1.0.0은 방금 발표되었지만, 최신 버전을 마음대로 설치하십시오.Nuget 패키지를 설치하려면 패키지 관리자 콘솔에서 다음 명령을 실행합니다.
Install-Package BlazorPWA.MSBuild -Version 1.0.0
프로젝트에 패키지가 활성화되어 있는지 확인하십시오.이것은 목록을 만드는 구축 과정에 갈고리를 추가할 것입니다.json 및 ServiceWorkerjs 파일, 이것은 PWA가 정상적으로 실행되는 데 필요한 것입니다.그렇습니다!이 프로젝트는 사용자 정의가 필요 없이 상자를 열면 바로 사용할 수 있다.다행히도 PWA를 맞춤형으로 제작하려면 여러 가지 방법이 있습니다.
사용자 정의 PWA
PWA 이름 변경
당신이 변경하고 싶은 첫 번째 일은 당신의 PWA 이름입니다.응용 프로그램은 짧은 이름과 긴 이름 두 개를 사용합니다.짧은 이름은 PWA를 설치한 후 응용 프로그램 이니시에이터에서 사용하는 이름입니다.설치 대화 상자에서 긴 이름을 사용합니다.
항목의 이름을 설정하려면 항목에 속성을 설정합니다.csproj 파일.예시에서 BlazorFireCalculators에 다음 줄을 추가했습니다.csproj.
<PropertyGroup>
<ManifestShortName>FIRE Calculator</ManifestShortName>
<ManifestLongName>Blazor FIRE Calculator</ManifestLongName>
</PropertyGroup>
아이콘 변경
다음은 응용 프로그램에 첨부된 아이콘을 변경해야 할 수도 있습니다.이 아이콘은 설치 대화 상자, 로드 화면 및 응용 프로그램 이니시에이터에 나타나므로 브랜드를 반영하기를 원할 것입니다.
아이콘을 변경하는 가장 간단한 방법은 프로젝트의 wwwroot 폴더에 두 개의 새 이미지 파일을 저장하는 것입니다.그중 하나는 아이콘-192라고 명명해야 한다.png와 다른 아이콘 - 512.파푸아뉴기니.이 파일들은 생성 과정에서 자동으로 발견되고 목록에 채워집니다.json.
캐시 자동 업데이트
내 응용 프로그램에서 BlazorPWA를 강제하고 싶습니다.프로젝트를 생성할 때마다 서비스 보조 프로세스의 내용을 다시 생성하는 MSBuild이것은 생성할 때 필요한 모든 파일이 캐시에 자동으로 추가됩니다. 설령 내가 생성 사이에 새 파일을 추가했다 하더라도.
업데이트를 업로드할 때 응용 프로그램이 원격 클라이언트의 캐시를 업데이트하는 방법을 알 수 있도록 버전 제어 시스템도 포함됩니다.이 두 줄 코드를 추가합니다.csproj 파일.
<PropertyGroup>
<ServiceWorkerCacheVersion>1</ServiceWorkerCacheVersion>
<ServiceWorkerForce>true</ServiceWorkerForce>
<ManifestShortName>FIRE Calculator</ManifestShortName>
<ManifestLongName>Blazor FIRE Calculator</ManifestLongName>
</PropertyGroup>
사용자 지정 설치 대화 상자
또한 PWA 응용 프로그램을 설치할 수 있을 때 Blazor 응용 프로그램에 설치 알림이 표시되길 바랍니다.브라조르프바.MSBuild는 사용자가 응용 프로그램을 설치할 수 있도록 아래쪽에 자동으로 알림을 포함합니다.이 기본 동작은 당신에게 적합할 수 있지만, 사용자 정의를 하기로 결정했습니다.
Blazor 응용 프로그램에 자동 경보가 아닌 사용자 정의 경보를 표시하도록 하려면 응용 프로그램에 다음 줄을 추가합니다.csproj 파일.
<PropertyGroup>
<ServiceWorkerCacheVersion>2</ServiceWorkerCacheVersion>
<ServiceWorkerForce>true</ServiceWorkerForce>
<ServiceWorkerRegisterInstallableType>installable-blazor</ServiceWorkerRegisterInstallableType>
<ManifestShortName>FIRE Calculator</ManifestShortName>
<ManifestLongName>Blazor FIRE Calculator</ManifestLongName>
</PropertyGroup>
이제 Shared/MainLayout을 엽니다.면도기이 파일에 배너를 추가하면 사용자가 PWA를 설치할 것인지 라우팅 끝점에 착륙하든 선택할 수 있습니다.PWA 설치 프로세스의 일부인 갈고리와 결합하기 위해 JavaScript 실행 시 도우미를 주입합니다.@inject IJSRuntime JSRuntime
다음에 html 코드를 추가하여 어떤 유형의 현수막을 표시합니다.나는 간단한 현수막과 문자, 그리고 두 개의 단추를 가지고 있다.@if (Installable)
{
<div class="row justify-content-center">
<div class="install-prompt col-sm-8 col-sm-offset-2 col-lg-6 col-lg-offset-3">
<span>Install app?</span>
<button class="installButton btn btn-primary" @onclick="@(() => InstallClicked())">Yes</button>
<button class="cancelButton btn btn-danger" @onclick="@(()=>Installable=false)">No</button>
</div>
</div>
}
다음 css 스타일도 사용했습니다..install-prompt {
background-color: #54595f;
color: #fff;
position: fixed;
bottom: 0.5rem;
padding: 0.5rem;
display: flex;
font-size: 1.5rem;
border-radius: .25rem;
z-index: 99;
}
.install-prompt .installButton {
margin-left: auto;
width: 4em;
}
.install-prompt .cancelButton {
margin-left: 0.3rem;
width: 4em;
}
주 레이아웃으로 돌아갑니다.razor, 이 전화를 처리해야 합니다.@code
{
static bool Installable = false;
static Action OnInstallable;
protected override void OnInitialized()
{
OnInstallable = () => InvokeAsync(StateHasChanged);
}
[JSInvokable]
public static Task PWAInstallable()
{
Installable = true;
OnInstallable.Invoke();
return Task.CompletedTask;
}
ValueTask InstallClicked()
{
Installable = false;
return JSRuntime.InvokeVoidAsync("BlazorPWA.installPWA");
}
}
먼저 알림을 표시하거나 숨기기 위해 Installable
부울을 정의합니다.그런 다음 응용 프로그램에 UI 새로 고침을 알리는 의뢰 OnInstallable
을 정의합니다.기본적으로 BlazorPWA입니다.MSBuild 도구는
PWAInstallable
이라는 호출 가능한 방법을 찾아서 설치 대화상자를 UI에 추가하는 것을 터치하기 때문에 이 방법의 이름을 계속 사용합니다.마지막으로 설치 단추의 OnClick 이벤트를 처리하는 방법을 만들었습니다.이 방법은 이전에 주입한 JS가 실행될 때 BlazorPWA가 자동으로 생성하는 함수를 실행합니다.MSBuild는
ServerWorkerRegister.js
에 MainLayout.razor is on GitHub의 전체 코드를 정의합니다.밑줄
Blazor WebAssembly 응용 프로그램을 성숙한 점진적인 웹 응용 프로그램으로 바꾸는 것은 매우 간단합니다!이 강좌는 서비스 워커 캐시를 설정하는 데 도움을 주고 응용 프로그램의 PWA 호출을 처리하는 데 유용한 사용자 정의 설정을 보여 줍니다.이 강좌를 따르고 Blazor에서 PWA를 만들면 데스크톱이나 모바일 시스템에 설치할 수 있는 프로그램을 만들었습니다.이것은 응용 프로그램 이니시에이터에서 시작할 수 있고 오프라인으로 작업할 수 있으며 클라이언트 장치의 다른 응용 프로그램처럼 업데이트를 받을 수 있습니다.GitHub에서 source code for the entire project을 테스트할 수 있습니다.
demo is available
Reference
이 문제에 관하여(Blazor WebAssembly를 사용하여 PWA를 만드는 간단한 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bradwellsb/a-simple-way-to-create-a-pwa-with-blazor-webassembly-1fln텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)