오랜만에 쓰는 글
최근에 타 기업과 A2A 연동 방식으로 서로의 앱을 호출할 일이 있어서 관련 내용을 정리해보고자 한다.
딥링크 (Deep Link)는 모바일 앱에서 특정한 화면 또는 기능으로 바로 이동할 수 있게 해주는 링크이다. 일반적인 웹 링크는 웹 페이지로 이동하는데 사용되지만, 딥링크는 모바일 앱을 실행하고 특정한 앱 화면으로 바로 이동할 수 있다.
iOS에서는 딥 링크는 URL Scheme 방식과 유니버셜 Scheme 방식 두 가지가 존재한다. 오늘은 URL Scheme을 통해 본인의 앱에서 다른 앱을 호출하고, 다른 앱에서 나의 앱을 호출하는 방법을 정리했다.
추가적으로 스킴을 타고 들어오는 URL의 쿼리 파라미터를 추출하여 앱을 타고 들어온 이후에 어떤 동작을 화면을 호출할 지, 앱 안에서 동작이 끝나면 다시 해당 앱으로 돌아갈 건 지 등의 처리를 해줄 수 있다.
// 나의 앱에서 상대방의 앱을 실행시키는 함수
func openOtherApp() {
guard let url = URL(string: "otherapp://") else {
return
}
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
// 상대방의 앱이 설치되지 않았을 경우 처리할 로직 추가
}
}