하이브리드 앱에서 뒤로가기 동작에 대해 이슈가 있었다. 모바일 팀에서 기존에 마지막 페이지를 체크하는 로직이 referrer를 기반으로 되어 있었는데 SPA의 경우 history.state API를 이용하고 이 경우 SPA 내에서 페이지 이동 시 referrer가 남지 않는다.

해결책

[fem] App Webview 뒤로가기 이슈 정리
1. React에서 페이지 라우팅시 document.referrer 없음
	- 하지만 라우팅시 window.history.state에 키값이 업데이트됨 (pushState 사용)
	결론: App Webview에서 이전페이지정보 확인 조건문 수정&추가
         if (document.referrer || history.state)
	웹배포: 4월3주전 어느날 (허문용과장님 기타 화면이슈 수정시)
	앱배포: 4월3주쯤 브랜드이슈에 포함 (강제업데이트 정책적용)
2. 테스트서버 mnew에서 tfrem으로 페이지이동시 document.referrer 빈값으로 변경됨 (운영에서는 정상)
	- 운영과 테스트서버 차이점 확인 필요
		1) <https://mnew>, <http://tfem>
		2) ...
	결론: 오훈 확인 (미완료)

이슈

요부분 스테이지 환경의 m.encar > fem로 진입할때 https > http로의 이동이라 document.referrer가 없는 경우가 있습니다.

이슈2

replace해도 state가 생김

다른 방향

const ua = useSsrUserAgent();
	const { isKakao, isApp } = ua();
	const timeoutRef = useRef();

	const handleCheckPrevPageClose = () => {
		if (isKakao) {
			closeKakaoInAppBrowser();
			return;
		}
		history.goBack();
		timeoutRef.current = setTimeout(() => {
			if (isApp) {
				mobileAppBridge().destroyWebView();
				return;
			}
			window.close();
		}, 300);
	};

const handleHistoryBack = useCallback(() => {
		if (timeoutRef.current) {
			clearTimeout(timeoutRef.current);
		}
	}, []);

	useEffect(() => {
		window.addEventListener('beforeunload', handleHistoryBack);

		return () => {
			window.removeEventListener('beforeunload', handleHistoryBack);
		};
	}, [handleHistoryBack]);

	useEffect(() => () => handleHistoryBack(), [handleHistoryBack]);

beforeunload를 이용하여 네트워크가 느린경우 close가 실행되는 이슈를 처리