팁과노하우

2024.11.13 20:15

바로가기 홈으로 등록한경우 당기면 새로고침 안되는부분 해결방법

바로가기 홈으로 등록한 홈페이지가 위에서 아래로 당기면 새로고침이 안되는데

pwa에서 이부분이 지원이 안되서 따로 만들어야 한다고 합니다.

아래소스는 tail.php 하단에 넣으시면됩니다.


<script src="https://cdnjs.cloudflare.com/ajax/libs/pulltorefreshjs/0.1.22/index.umd.min.js"></script>


<script>


let touchStartY = 0;

let touchMoveY = 0;

let isPullingDown = false;


const standalone = window.matchMedia("(display-mode: standalone)").matches

if(standalone)

{


// touchstart 이벤트로 초기 터치 지점 저장

window.addEventListener('touchstart', function(event) {

    // 스크롤이 맨 상단인지 확인 (window.scrollY 또는 다른 방식으로)

    if (document.body.scrollTop === 0 || document.documentElement.scrollTop === 0) {

        touchStartY = event.touches[0].clientY;

        isPullingDown = false; // 초기화

    }

}, false);


// touchmove 이벤트로 사용자가 스크롤하고 있는지 감지

window.addEventListener('touchmove', function(event) {


    touchMoveY = event.touches[0].clientY;


    // 사용자가 아래로 당기고 스크롤이 맨 상단에 있을 때만 동작

    if (touchMoveY > touchStartY && (document.body.scrollTop === 0 || document.documentElement.scrollTop === 0)) {

        let distancePulled = touchMoveY - touchStartY;


        // 일정 거리 이상 당기면 새로고침 동작 감지

        if (distancePulled > 50) {

            isPullingDown = true;

            console.log('Pulling down detected:', distancePulled, 'px');

            // 새로고침 UI 표시 등을 여기에 추가

        }

    }

}, false);


// touchend 이벤트로 사용자가 손을 뗐을 때 동작

window.addEventListener('touchend', function(event) {


// alert(document.body.scrollTop);

    if (isPullingDown && document.body.scrollTop<=0) {

        console.log('Released after pulling down');

        // 새로고침 또는 다른 동작 실행

        window.location.reload(); // 새로고침

        isPullingDown = false;

    }

}, false);

}

</script>

  • 공유링크 복사
    미니홈 쪽지 구독하기
    구독하고 알림받기