From 4c325544a66af602cb40f3e91c8452e06b0e5c9a Mon Sep 17 00:00:00 2001 From: sb Date: Sun, 5 Jul 2026 15:53:24 +0900 Subject: [PATCH] =?UTF-8?q?fix(account):=20=EB=AA=A8=EB=8B=AC=20=EC=97=B4?= =?UTF-8?q?=20=EB=95=8C=20=ED=81=B4=EB=A6=BD=EB=B3=B4=EB=93=9C=20=EC=9E=90?= =?UTF-8?q?=EB=8F=99=EC=9D=BD=EA=B8=B0=20=EC=A0=9C=EA=B1=B0=20=E2=80=94=20?= =?UTF-8?q?iOS=20'=EB=B6=99=EC=97=AC=EB=84=A3=EA=B8=B0'=20=ED=86=A0?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EB=B0=A9=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 내역 추가·빠른입력 모달이 열릴 때 navigator.clipboard.readText() 호출로 iOS 시스템 붙여넣기 토스트가 매번 떴음. 자동 읽기/배지 감지 제거(수동 붙여넣기는 유지). Co-Authored-By: Claude Opus 4.8 --- src/views/account/AccountView.vue | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/src/views/account/AccountView.vue b/src/views/account/AccountView.vue index a770a0c..4b9dc2c 100644 --- a/src/views/account/AccountView.vue +++ b/src/views/account/AccountView.vue @@ -866,32 +866,15 @@ async function parseAndApply(text, { silent } = {}) { } return false } -// 클립보드가 카드문자/거래처럼 보이는지 로컬로만 판단(AI 호출 없음 — 비용·오작동 방지) -function looksLikeTxn(t) { - return !!t && /\d/.test(t) && /(원|₩|승인|입금|출금|결제|카드|이체)/.test(t) -} -// 추가 팝업 열 때: 클립보드에 거래성 텍스트가 있으면 버튼에 점 배지만 표시(자동 전송 안 함) -async function tryClipboardOnOpen() { +// 추가 팝업 열 때: 클립보드 자동 읽기 제거(iOS 는 clipboard.readText() 마다 '붙여넣기' 시스템 토스트를 띄움). +// 배지 표시용 감지도 하지 않는다. 붙여넣기는 사용자가 모달 안에서 직접 한다. +function tryClipboardOnOpen() { pasteDetected.value = null - try { - const txt = await navigator.clipboard.readText() - if (looksLikeTxn(txt)) pasteDetected.value = { local: true } - } catch { - // 클립보드 접근 불가 — 무시 - } } -// '빠른 입력' 버튼 → 모달 열기. 클립보드가 카드문자처럼 보일 때만 미리 채워줌(자동 AI 전송 없음 — 사용자가 버튼으로 분석) -async function openPasteModal() { +// '빠른 입력' 버튼 → 모달 열기(자동 클립보드 읽기 없음). 사용자가 자연어 입력 또는 직접 붙여넣기. +function openPasteModal() { pasteError.value = '' pasteModalOpen.value = true - if (!pasteText.value) { - try { - const txt = await navigator.clipboard.readText() - if (looksLikeTxn(txt)) pasteText.value = txt - } catch { - // 클립보드 접근 불가 — 수동 입력 - } - } } // 모달에서 분석·채우기 async function analyzePasted() {