본문 바로가기
🍎iOS프로그래밍/오늘의 공부

iOS프로그래밍 - URL Scheme 외부 앱 호출하기

by 둥둥동동# 2022. 7. 25.
728x90

 

URL Scheme

 

URL Scheme으로 외부와 통신하기

 

 

들어가기전

 

URL Scheme의 개념은 아래 포스팅에서 확인해주세요

 

https://admd13.tistory.com/110

 

Swift - URL Scheme을 알아보자, 다른 앱 호출하기

순서 URL Scheme의미 지원여부 확인 들어가기전.. 해당 포스팅은 URL Scheme의 개념에 대해 서술한 글입니다 다른앱을 호출하는 코드를 바로 보고 싶은 분은 아래 포스팅을 참고해 주세요 URL Scheme 의

admd13.tistory.com

 

프로젝트에 호출하고 싶은 앱의 URL Scheme을 등록한 뒤 코드를 통해 외부 앱을 호출합니다

 

간단히 예시를 들자면 앱스토어에 등록된 네이버맵 어플리케이션의 URL Scheme은 nmap:// 입니다

이 URL Schemed으로 네이버에서 미리 정의해 둔 파라미터를 지정해 원하는 동작을 명령할 수 있습니다

아래는 네이버 맵 API에서 올린 사용법 중 일부입니다

"nmap://shearch?query=애플스토어" 이 문자열을 인코딩 하여 open메서드를 실행하면 

애플스토어가 검색된 네이버맵이 실행됩니다

 

 

 

실습

 

1.plist에 호출하고자 하는 앱의 URL Scheme을 미리 등록해 두어야 합니다

 

LSApplicationQueriesSchemes배열에 값을 넣습니다

네이버 맵의 URL Scheme은 nmap이니 그대로 적습니다

 

 

2.아래와 같은 형식으로 url을 작성합니다

인코딩된 주소를 그대로 쓰면 코드가 한줄이 되겠지만 

저는 코드 가독성을 위해 한글로 적은 뒤 인코딩하는 방식을 선택했습니다

 

let mapUrlKor = "nmap://search?query=애플스토어"
let mapUrlString = mapUrlKor.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!

 

3.이후 canOpenURL메서드로 해당 url로 실행 가능한 앱이 존재하는지 확인합니다

UIApplication.shared.canOpenURL(url){

 

4-1.실행가능한 앱이 존재하면 openURL 메서드로 해당 어플리케이션을 실행합니다

   UIApplication.shared.openURL(url)

 

 

4-2. 실행가능한 앱이 없다면 설치할 수 있도록 앱스토어로 열어줍니다

    UIApplication.shared.open(appStoreURL)

 

 

 

전체 코드

 

let mapUrlKor = "nmap://search?query=애플스토어"
let mapUrlString = mapUrlKor.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
let appStoreURL = URL(string: "http://itunes.apple.com/app/id311867728?mt=8")!
 
//호출 가능한 url인지 확인
if let url = URL(string: mapUrlString), UIApplication.shared.canOpenURL(url){
   UIApplication.shared.openURL(url)
}
else{
    UIApplication.shared.open(appStoreURL)
}
cs

123123

728x90

댓글