웹뷰에서 scheme 이란 뭐고 왜 사용할까?
- 스킴은 웹과 앱을 연결하는 다리라고 생각하면 됨.
- 해당 앱이 실행되면, url 에 담긴 정보대로 특정 페이지로 이동하게 됨
스킴 동작 방식
- 웹에서 스킴을 호출한다.
window.location.href = "어쩌구어쩌구://어쩌구/router?url=https://example.com"
OS의 스킴 처리 과정
- URL 스킴 감지
- OS는 특수 프로토콜(xxxx://)를 인식
- 시스템 레벨의 URL 스킴 레지스트리 확인
- 앱 매칭
- 매니페스트 파일에서 스킴 정보 검색
- 매니페스트 파일은 각 앱마다 가지고 있는 앱의 필수 정보를 담고 있는 선언파일
- 해당 스킴을 처리할 수 있는 앱 찾기
- 라우팅 Android:
-
Intent 필터로 스킴 확인
-
해당 앱으로 Intent 전달
-
iOS
- URL Types로 스킴 확인
- UIApplication으로 앱에 전달
- 앱 실행 혹은 앱으로 직접 전달
그러면 이 스킴은 어디에 꽂히나?
- 앱 설정에서 웹뷰별 스킴을 구분하여 실행해주지 않을까..
스킴은 어디에서 띄우나?
- 테스트앱 실행
- 앱 내에서 웹뷰로 스킴 URL 호출
- 또는 QR코드로 스캔해서 앱으로 열기