diff --git a/src/App.vue b/src/App.vue index d11e213..e79d3a6 100644 --- a/src/App.vue +++ b/src/App.vue @@ -75,11 +75,19 @@ function retryReload() { } // ===== 앱 잠금(PIN) ===== -// 백그라운드로 가면 잠가서, 복귀 시 잠금 화면이 떠 있도록 한다. -// 단, 카메라/갤러리/공유 등 앱 내 네이티브 동작으로 인한 일시 숨김은 제외(suppress). +// 잠깐 다른 앱 다녀온 정도로는 잠그지 않고, 일정 시간 이상 백그라운드였을 때만 잠근다. +// (완전 종료/재시작은 onMounted 에서 잠금) — 카메라/갤러리/공유 등 인앱 동작은 suppress 로 제외. +const LOCK_GRACE_MS = 60 * 60 * 1000 // 1시간 미만 이탈은 잠그지 않음(잦은 PIN 입력 방지) +let backgroundedAt = 0 function onVisibility() { - if (document.hidden) appLock.lock() - else appLock.clearSuppress() // 복귀 — 일시중지 창 해제 + if (document.hidden) { + backgroundedAt = Date.now() + } else { + const away = backgroundedAt ? Date.now() - backgroundedAt : 0 + backgroundedAt = 0 + if (away >= LOCK_GRACE_MS) appLock.lock() // lock() 은 suppress 창이면 건너뜀 + appLock.clearSuppress() // 복귀 — 일시중지 창 해제 + } } // 파일 선택(input[type=file]) 클릭 시 다음 백그라운드 전환을 잠금에서 제외 function onFileInputClick(e) {