Android
Scheme이란?
dev_SiWoo
2025. 11. 13. 17:48
What's 스킴(Scheme)? → URL의 “프로토콜 이름”
https://naver.com
- https ← 이 부분이 스킴(scheme)
- :// ← 스킴 구분자
URL이 “무슨 종류의 명령인지” 나타내는 식별자
🔵 다양한 스킴 예시
https://google.com → 스킴: https
http://example.com → 스킴: http
file:///path → 스킴: file
tel:01012345678 → 스킴: tel
mailto:test@test.com → 스킴: mailto
intent://something → 스킴: intent
❗ 스킴을 처리하지 않으면?
예시 1)
웹에서 “전화 걸기” 버튼 → 눌러도 아무 일도 안 일어남
예시 2)
카카오톡 로그인, 네이버 로그인 등 외부 앱 호출 → 실패함
예시 3)
앱 내부 사용자 정의 명령(app://...) → WebView가 잘못 열어서 오류 발생
🔥 Android에서 스킴 처리하는 대표 케이스
1) 전화 걸기
if (url.startsWith("tel:")) {
val intent = Intent(Intent.ACTION_DIAL, Uri.parse(url))
startActivity(intent)
return true
}
2) 이메일 열기
if (url.startsWith("mailto:")) {
val intent = Intent(Intent.ACTION_SENDTO, Uri.parse(url))
startActivity(intent)
return true
}
🔵 스킴은 앱 ↔ 웹 통신의 기본 기술이기도 함
웹에서 Android에게 명령 전달시
window.location.href = "app://closeWebview";
Android에서:
if (url.startsWith("app://closeWebview")) {
finish() // 액티비티 종료
}