iOS 인앱 브라우저가 작동하지 않습니다
인앱 브라우저는 Safari처럼 보이지만 Safari가 아닙니다. 혼란의 대부분은 이 브라우저가 의도적으로 하지 않는 몇 가지에서 나옵니다.
2026년 8월 9일 · PAD team
무엇인가
링크를 내부에서 여는 앱은 WKWebView를 씁니다. Safari와 같은 렌더링 엔진에 자기 인터페이스를 씌운 것입니다. 페이지는 동일하게 그려집니다. 차이는 권한, 그리고 이 컨테이너가 시스템의 나머지 부분에 무엇을 넘길 수 있는지에 있습니다.
깨지는 것들
| 실패하는 것 | 이유 |
|---|---|
| App Store 링크 | Apple이 웹뷰가 넘길 수 없는 itms-appss://로 리디렉션 |
| 기존 로그인 | Safari와 쿠키 저장소가 분리되어 세션이 이어지지 않음 |
| Apple Pay와 3-D Secure | 컨테이너가 열지 않는 네이티브 시트나 새 창이 필요 |
| 파일 다운로드 | 대부분의 컨테이너에 다운로드 관리자가 없음 |
새 탭의 window.open | 대개 무시되거나 같은 자리에서 열림 |
| 카메라와 마이크 | 권한 요청이 자주 억제됨 |
스토어 링크의 경우, 자세히
돈이 걸린 항목이라 무작정 우회하기보다 이해할 가치가 있습니다. iOS에서 무엇이든 스토어 URL을 요청하면 Apple은 리디렉션으로 답합니다.
GET https://apps.apple.com/us/app/example/id123456789
→ 302 Found
Location: itms-appss://apps.apple.com/us/app/example/id123456789
Safari는 페이지를 닫고 App Store를 엽니다. 웹뷰에는 그 스킴의 핸들러가 없고 다른 앱에 넘길 수도 없어서 이동이 조용히 멈춥니다.
Apple도, 앱 회사들도 이것을 고장으로 보지 않습니다. Apple은 웹 페이지 대신 네이티브 스토어가 열리도록 커스텀 스킴으로 리디렉션하고, 앱들은 방문자를 측정하기 위해 자기 브라우저 안에 붙잡아 둡니다.
우회하는 법
스토어 링크라면, Apple의 리디렉션이 발동하기 전에 웹뷰를 빠져나가십시오. 가능한 곳에서는 instagram://extbrowser를, 그 외에는 스토어 스킴을 직접 쓰고, 마지막 수단으로 눈에 보이는 버튼을 둡니다. 코드가 포함된 전체 순서는 본 해설에 있습니다.
로그인과 결제라면 같은 원칙을 흐름의 더 앞에 적용하십시오. 중간까지 가서 컨테이너가 협조하지 않는다는 것을 발견하는 대신, 민감한 단계 전에 진짜 브라우저로 옮겨 두는 것입니다.
스토어 링크에 한해서는, 저희 링크가 탐지와 탈출을 대신하고 어떤 탭이 빠져나갔는지 알려드립니다.