티스토리 뷰
반응형
데스크탑에서 크롬이나 모바일 안드로이드 같은 경우 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
반응형
'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 |
댓글
공지사항