728x90
URL Scheme
URL Scheme으로 외부와 통신하기
들어가기전
URL Scheme의 개념은 아래 포스팅에서 확인해주세요
https://admd13.tistory.com/110
프로젝트에 호출하고 싶은 앱의 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
'🍎iOS프로그래밍 > 오늘의 공부' 카테고리의 다른 글
iOS - WKWebView, UIWebVie에서 에러코드 보기 (콘솔창 확인) (0) | 2022.08.02 |
---|---|
iOS - DispatchQueue_2 (0) | 2022.07.27 |
iOS프로그래밍 - 이미지 캐싱(NSCache) (0) | 2022.07.23 |
Mac - Source Tree 소스트리 강제종료 현상 (0) | 2022.07.16 |
iOS - 디스패치큐 알아보기 - main, global(), private (0) | 2022.07.15 |
댓글