next js에서 pwa 다운로드 버튼 생성하기

2020. 8. 7. 13:36·WEB/Nextjs

데스크탑에서 크롬이나 모바일 안드로이드 같은 경우 beforeinstallpropmt 이벤트를 사용해서 다운로드 버튼을 만들 수 있지만 ios는 작성일 기준까지도 불가능하다. 

 

1. beforeinstallpropmt 이벤트 등록하기

import React, { useEffect, useRef } from "react";

...

let deferredPrompt = useRef(null);

useEffect(() => {
    console.log("Listening for Install prompt");
    window.addEventListener("beforeinstallprompt", (e) => {
      e.preventDefault();
      deferredPrompt.current = e;
    });
    
    //설치가 되어있다면 버튼은 숨긴다
    if (!deferredPrompt.current) {
      return dispatch({
        type: "HIDE_BUTTON",
      });
    }

//버튼을 보여줌
    dispatch({
      type: "SHOW_BUTTON",
    });
  }, []);
  
  ...

useRef를 사용하여 defferdpropmt변수에 beforeinstallpropmt 이벤트를 넣는다

 

2. 설치 함수 만들기

const installApp = () => {
    if (!deferredPrompt.current) return false;
    
    //홈화면의 추가를 실행시킨다
    deferredPrompt.current.prompt();
    
    //실행 후 유저가 설치를 했는지 안했는지를 알 수 있다
    deferredPrompt.current.userChoice.then((choiceResult) => {
      //설치 했을 때
      if (choiceResult.outcome === "accepted") {
        console.log("User accepted the A2HS prompt");
        dispatch({
          type: "HIDE_BUTTON",
        });
      } else {
      //설치 하지 않았을 때
        console.log("User dismissed the A2HS prompt");
      }
    });
  };

 

3.버튼에 이벤트 등록

...

return (
  <>
    <button onClick={installApp}>다운로드</button>
  </>
);

 

next js에 pwa 적용하기 : https://jcon.tistory.com/171

저작자표시 비영리 변경금지 (새창열림)

'WEB > Nextjs' 카테고리의 다른 글

next js에 pwa 적용하기  (0) 2020.08.07
next + pwa 홈화면에 추가 버튼 생성  (0) 2020.05.28
next + pwa 설정  (0) 2020.05.28
Next js 튜토리얼 8편 : 배포  (0) 2019.10.10
Next js 튜토리얼 7편 : 컴포넌트 스타일링  (0) 2019.10.05
'WEB/Nextjs' 카테고리의 다른 글
  • next js에 pwa 적용하기
  • next + pwa 홈화면에 추가 버튼 생성
  • next + pwa 설정
  • Next js 튜토리얼 8편 : 배포
vitnal
vitnal
4년차 프론트엔드 개발자입니다. react를 사용하여 웹 서비스를 개발한 경험이 있습니다. github: https://github.com/jch1223
  • vitnal
    vitnal 아카이브
    vitnal
  • 전체
    오늘
    어제
    • 분류 전체보기 (146) N
      • AI (1)
      • WEB (76)
        • React (21)
        • Nextjs (17)
        • JavaScript (16)
        • React Native (5)
        • HTML & CSS (7)
      • CS (3)
      • Git (15)
      • Dev Tools (23) N
      • Deploy (12)
      • Tech Memo (8)
      • Retrospect (7)
  • 반응형
  • hELLO· Designed By정상우.v4.10.5
vitnal
next js에서 pwa 다운로드 버튼 생성하기
상단으로

티스토리툴바