홈 화면에 추가를 PWA에 통합하는 방법

게시 됨: 2021-05-13

목차

홈 화면에 추가(줄여서 A2HS)는 사용자의 홈 화면에서 앱 실행을 포함하는 완전한 기본 앱 경험을 허용하므로 Progressive Web Apps 경험의 기본입니다.

 추천 자료: PWA 대 네이티브: 어느 것이 더 잘 어울리나요?

PWA의 중요한 기능이므로 통합하지 않을 수 없습니다. 그래서 오늘 SimiCart PWA 튜토리얼에서 A2HS가 필요한 이유, 사용 방법 및 PWA를 만드는 방법을 살펴보겠습니다. 모바일과 데스크탑 모두에서 A2HS 지원.

지원 브라우저

A2HS는 브라우저 간의 보편적인 기능에 매우 가깝습니다. 현재 모바일 Chrome/Android Webview(버전 31 이상), Android용 Opera(버전 32 이상) 및 Android용 Firefox(버전 58 이상)에서 현재 지원됩니다. 자세한 내용은 CanIUse 웹사이트를 확인하세요.

PWA 홈 화면에 추가 작동 중

PWA 홈 화면에 추가가 활성화된(A2HS 활성화) 사이트를 발견하면 사용자 인터페이스 하단에 사이트를 홈 화면에 추가할 수 있음을 알리는 배너를 볼 수 있습니다.

Harlow Bros - 홈 화면에 PWA 추가
Harlow Bros – SimiCart의 자랑스러운 작품

이것은 특정 설치 가능 기준이 충족될 때 발생하는 기본 브라우저 제공 설치 프로모션 입니다. 알림 자체는 사용자가 웹사이트를 처음 방문할 때 표시되고 약 90일 후에 다시 표시됩니다.

모바일에서 웹 앱 A2HS를 활성화하는 방법

설치 가능 기준

웹 앱을 설치할 수 있으려면 다음을 충족해야 합니다.

  • 아직 설치되어 있지 않습니다
  • 사용자 참여 휴리스틱 충족(사용자는 최소 30초 동안 페이지와 상호 작용해야 함)
  • 보안(HTTPS) 연결에서 제공
  • 서비스 워커를 등록하다
  • 적절하게 구성된 매니페스트 파일이 있어야 합니다.
  • 그리고 가장 중요한 것은 사용 중인 브라우저가 beforeinstallprompt 이벤트를 지원해야 한다는 것입니다. beforeinstallprompt 이벤트를 지원하는 전체 브라우저 목록은 CanIUse를 참조하십시오.

시작하기

데모 목적으로 이 기사에서는 설치 가능한 PWA를 만들기 위한 기반으로 create-react-app 프로젝트를 사용합니다. create-react-app은 단일 페이지 애플리케이션을 생성하는 간단한 React 명령입니다.

참고 : create-react-app 에는 최소 node >= 10.16 및 npm >= 5.6이 필요합니다.

Node.js 명령 프롬프트 를 열고 다음 명령을 실행합니다.

 npx 생성 반응 앱 pwa-a2hs
cd pwa-a2hs
실 시작 
반응 앱 데모 만들기
명령을 실행한 후의 기본 웹 앱

매니페스트 파일 만들기

일반적으로 웹 앱의 루트 폴더 깊숙이 위치한 웹 매니페스트는 앱 제목, 다른 아이콘의 경로, 배경색 등과 같은 웹사이트에 필요한 모든 정보를 JSON 형식으로 포함하는 파일입니다. 웹 매니페스트 파일은 사용자 경험의 다양한 단계에서 웹 앱을 적절하게 표시할 수 있도록 하므로 기능적인 웹 앱에 매우 중요합니다.

매니페스트 생성기를 사용하여 앱의 크기에 최적화된 아이콘과 함께 파일을 자동으로 생성하는 것이 좋습니다.

웹 앱 매니페스트 생성기를 위한 최적의 구성

매니페스트 생성기를 사용하면 다음과 같은 콘텐츠가 포함된 manifest.zip 파일을 만들 수 있습니다.

생성된 웹 앱 매니페스트

manifest.webmanifest 는 다음과 같아야 합니다.

 {
    "theme_color": "#f69435",
    "background_color": "#f69435",
    "디스플레이": "독립형",
    "범위": "/",
    "start_url": ".",
    "이름": "PWA-A2HS",
    "short_name": "PWA",
    "설명": "A2HS 기능용 데모 PWA",
    "아이콘": [
        {
            "src": "/icon-192x192.png",
            "크기": "192x192",
            "유형": "이미지/png"
        },
        {
            "src": "/icon-256x256.png",
            "크기": "256x256",
            "유형": "이미지/png"
        },
        {
            "src": "/icon-384x384.png",
            "크기": "384x384",
            "유형": "이미지/png"
        },
        {
            "src": "/icon-512x512.png",
            "크기": "512x512",
            "유형": "이미지/png"
        }
    ]
}

이제 생성된 매니페스트 파일의 내용을 /public/ 폴더에 복사하고 이 폴더에서 기본 manifest.json 파일을 삭제하고 다음 단계로 이동합니다.

HTML을 매니페스트에 연결

매니페스트 파일 구성이 완료되면 웹사이트의 루트 디렉터리에 저장하여 나중에 상대 경로(예: /manifest.webmanifest )로 호출할 수 있도록 합니다. 매니페스트 파일 설정을 마치려면 HTML 헤더에서 참조하세요. ( \pwa-a2hs\public\index.html ), 다음과 같습니다.

 <머리>
    <메타 문자 집합="utf-8" />
    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
    <메타 이름="viewport" content="width=device-width, initial-scale=1" />
    <메타 이름="테마 색상" content="#000000" />
    <메타
      이름="설명"
      content="create-react-app을 사용하여 만든 웹 사이트"
    />
    <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
    <link rel="manifest" href="%PUBLIC_URL%/manifest.webmanifest" />
       <title>PWA A2HS</title>
  </head>

설치 흐름 설정

웹 앱 매니페스트가 웹 앱을 설치 가능하게 만드는 데 필요한 전부는 아닙니다. 웹 앱을 설치 가능하게 만들고 PWA에 한 걸음 더 가깝게 만들기 위해 몇 가지 추가 구성이 필요합니다.

서비스 워커 생성

서비스 워커는 네트워크 요청을 가로채고 PWA로 유명한 다양한 앱과 유사한 기능을 활성화합니다. pwa-a2hs\publicservice-worker.js 파일을 만들고 다음 내용으로 채웁니다.

 self.addEventListener('페치', 함수(이벤트) {
  event.respondWith(
      caches.match(event.request).then(함수(응답) {
          응답을 반환 || 가져오기(event.request);
      })
  );
});

여기에서 fetch 이벤트를 수신 대기해야 합니다. 홈 화면에 추가 경험에 중요 하기 때문입니다. 그렇지 않으면 React 앱이 설치 가능성 요구 사항을 충족할 수 없습니다.

서비스 워커 등록

그리고 service-worker.js 가 작동하려면 index.html<body> 끝에 이 코드를 삽입하여 등록해야 합니다.

 //인덱스.html
<스크립트>
    if (네비게이터의 'serviceWorker') {
      // 루트에서 호스팅되는 서비스 워커를 등록합니다.
      // 기본 범위를 사용하는 사이트.
      내비게이터.serviceWorker.register('/service-worker.js').then(함수(등록) {
        console.log('서비스 워커 등록 성공:', registration);
      }, /*캐치*/ 함수(오류) {
        console.log('서비스 워커 등록 실패:', 오류);
      });
    } 또 다른 {
      console.log('서비스 워커는 지원하지 않습니다.');
    }
  </스크립트>

테스트할 시간입니다!

이제 PWA를 설치할 수 있습니다. 프런트엔드를 새로 고치면 작업 표시줄(데스크톱) 또는 작은 알림 배너(모바일)에 설치 버튼이 표시되어야 합니다.

브라우저 바의 PWA 설치 버튼

설치 를 클릭하면 바탕 화면/홈 화면에 다음과 같은 PWA 바로 가기가 생성됩니다.

바탕 화면/홈 화면의 PWA 아이콘

A2HS 경험에 더 많은 것이 있습니다

위의 내용은 브라우저에서 제공하는 설치 프로모션을 사용하여 기본적으로 홈 화면에 추가한 것입니다. 한 단계 더 나아가기 위해 beforeinstallprompt 이벤트를 저장 하여 PWA 설치를 홍보하기 위한 다양한 패턴으로 설치 흐름을 수동으로 트리거할 수도 있습니다.

회원가입 페이지의 설치 버튼
가입 페이지에 설치 버튼 표시

사용자 지정 설치 버튼을 사용하면 앱 설치의 이점을 얻을 특정 사용자를 대상으로 하여 사용자의 여정을 방해하는 것을 방지할 수 있습니다. 그리고 프로모션 UI를 어디에 어디에 배치할지 신중하게 생각하면 PWA가 경쟁사보다 더 잘할 수 있고 결과적으로 훨씬 더 나은 앱 전환율을 얻을 수 있습니다.