RN) 디바이스 백 버튼 기능 방지 및 2번 클릭 시 앱을 종료하는 방법

김명성·2023년 1월 31일
0
  // 클릭 회수를 저장하는 state
  const [backTapping,setBackTapping] = useState(0);
  
  // Device의 Back button을 Press할때 발생하는 Action
  const backAction = () => {
    setBackTapping((prev) => prev += 1);
    return true
  }
  // 클릭 회수를 초기화하는 Timer
  useEffect(() => {
    const timer = setInterval(() => {
      setBackTapping(0)
    }, 1000)
    return () => clearInterval(timer);
  }, [])

  // Action을 Listener에 등록하는 UseEffect
  useEffect(() => {
    const backHandler = BackHandler.addEventListener('hardwareBackPress',backAction )
    return () => backHandler.remove()
  }, [])

  // backTapping이 2가 될 때 앱 종료
  useEffect(() => {
    if(backTapping >= 2){
      return BackHandler.exitApp();
    }
  },[backTapping])

0개의 댓글