[WEB-USER][FIX]: QR 전용 안내 화면에서 위치 권한 자동 요청 제외 - #179
Merged
Merged
Conversation
/partner, /app 같은 QR 직진입 화면은 위치를 전혀 쓰지 않는데도 진입하자마자 위치 권한 팝업이 떴습니다. 방문자는 페이지 내용을 보기도 전에 맥락 없는 팝업을 만나 대부분 거부하고, 브라우저가 그 거부를 기억하기 때문에 정작 위치가 필요한 지도·검색 화면에서는 다시 물을 수조차 없게 됩니다. - 제외 경로를 `PATHS` 상수로 두고 `pathname === base || startsWith(base + "/")`로 판정. `/app`은 하위에 `/app/android`가 있어 정확히 일치만으로는 부족함 - 자동 위치 요청을 브릿지 등록 이펙트에서 떼어내 pathname에 의존하는 별도 이펙트로 분리. AuthProvider는 라우트가 바뀌어도 언마운트되지 않아서, 마운트 1회 이펙트에 두면 /partner로 처음 들어온 세션은 이후 홈이나 지도로 이동해도 위치를 영영 요청하지 않게 됨 - 웹뷰 환경에서는 라우트가 바뀔 때마다 Flutter에 위치를 다시 요청하게 됨. 세션 내 1회로 제한하는 것보다, 제외 경로를 거쳐 온 사용자가 위치를 받는 쪽을 우선했음 (자동 요청은 userInitiated=false라 거부해도 모달이 뜨지 않음) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016ScM4roFnvWcR1hmDuw7Zi
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📋 요약
/partner,/app같은 QR 직진입 안내 화면에서 위치 권한 자동 요청을 하지 않도록 합니다. 이 화면들은 위치를 전혀 쓰지 않는데도 진입하자마자 권한 팝업이 떴습니다.✨ 주요 변경사항
/partner,/app및 그 하위) 도입pathname에 의존하는 별도 이펙트로 이동🧪 테스트 계획
/partner진입 → 위치 팝업이 뜨지 않는지/app,/app/android도 팝업이 뜨지 않는지/partner→ 홈(/) 이동 → 이때는 위치 팝업이 뜨는지📎 참고 사항
왜 필요했는가 — 방문자가 페이지 내용을 보기도 전에 맥락 없는 팝업을 만나면 대부분 거부합니다. 브라우저는 그 거부를 기억하기 때문에, 정작 위치가 필요한 지도·검색 화면에서는 다시 물을 수조차 없게 됩니다. QR로 처음 서비스를 접하는 사장님·신규 방문자가 이 경로로 들어옵니다.
왜 마운트 1회 이펙트가 아니라
pathname의존 이펙트인가 —AuthProvider는 라우트가 바뀌어도 언마운트되지 않습니다. 마운트 1회 이펙트에 제외 조건만 넣으면,/partner로 처음 들어온 세션은 이후 홈이나 지도로 이동해도 위치를 영영 요청하지 않게 됩니다.경로 판정 —
pathname === base || startsWith(base + "/")./app은 하위에/app/android가 있어서 정확히 일치만으로는 부족합니다.알려진 트레이드오프 —
pathname에 의존하게 되면서 웹뷰 환경에서는 라우트가 바뀔 때마다requestLocationFromWebView()가 Flutter로 나갑니다(이전에는 마운트 시 1회). "이미 요청함" 플래그가 없어 중복을 막는 장치도 없습니다. 제외 경로를 거쳐 온 사용자가 위치를 받는 쪽을 우선한 선택입니다. 자동 요청은userInitiated=false라 거부해도 모달은 뜨지 않습니다. 앱에서 화면 이동 시 위치 사용 표시가 반복돼 거슬리는 수준이면 세션당 1회 제한 플래그를 후속으로 넣을 예정입니다.스테이징 확인 결과 (
web-user/staging-v0.0.233, 배포 성공)https://staging.picakes.com/200,/partner200/app(Android UA) → 302 →/app/android200tsc --noEmit통과 (오류 0건)