pulse.huny.dev

HunyDev
Building a Personal Inbox PWA with Web Share Target

Building a Personal Inbox PWA with Web Share Target

PWA에서 **Web Share Target (share_target)**을 쓰면 안드로이드 “공유하기”에서 바로 웹앱(예: send.huny.dev)으로 텍스트/URL/파일을 보낼 수 있다.

Hun Jang
Hun Jang Dec 2, 2025

PWA에서 네이티브 공유 받기 구현하기

핵심 개념 한 줄 요약

  • Web Share: 웹에서 공유하기를 여는 쪽 (navigator.share).
  • Web Share Target: 공유받는 쪽 (안드로이드 네이티브 공유 시트 → 설치된 PWA).

최소 구현 가이드 (바로 붙여 넣기)

1) manifest.json

2) Service Worker(선택·권장) – 라우팅 핸들업

3) 클라이언트 페이지(/inbox)

  • 업로드 큐(IndexedDB) → 서버 전송 진행률 표시
  • 항목 타입별 렌더(텍스트/URL/파일)

안드로이드에서 잘 되게 하는 체크리스트

  • PWA가 홈 화면에 설치되어 있어야 공유 타깃으로 노출됨.
  • HTTPS + 유효한 manifest + SW 등록 필수.
  • 파일 타입 허용 목록(accept)을 실제 용도에 맞게 좁혀 안정성 확보.
  • 대용량 파일은 백그라운드 업로드(서비스 워커 + 백오프/재시도) 설계.
  • /sharePOST + multipart/form-data만 오니 GET 접근시 가드.
  • 공유 후 즉시 피드백: 토스트/리다이렉트로 “받음” 확실히 표시.

UX 팁 (send.huny.dev에 맞춤)

  • 초심플 수신함: 오늘/이번 주/전체 필터, “클립보드로 복사”, “내 이메일로 포워드” 퀵액션.
  • 자동 분류: URL → 프리뷰 카드, 이미지 → 썸네일, 텍스트 → 노트.
  • 기기 간 연속성: QR로 열기, “1회성 다운로드 링크” 생성.

에러·호환 주의

  • iOS 사파리는 share_target 미지원. iOS에선 대체 UX 제공(클립보드 감지/웹 Share만).
  • 일부 브라우저(구형/벤더)는 공유 시트에 PWA를 안 보여줄 수 있음 → 설치 유도 배너 제공.
  • 아주 큰 파일은 SW 메모리 부담 → 스트리밍 업로드(ReadableStream) 고려.

You might also like

BlogPro logo
Made with BlogPro