boraBong

[iOS] Swift를 사용하여 카카오톡 앱을 실행하는 방법 📲 (URLScheme) 본문

iOS/Feat

[iOS] Swift를 사용하여 카카오톡 앱을 실행하는 방법 📲 (URLScheme)

보라봉_ 2021. 4. 10. 04:45
728x90

안녕하세요ㅎㅅㅎ

보라봉입니다💜

 

오늘은 swift를 사용하여 iOS 디바이스에서 카카오톡 앱을 실행시키는 기능을 공부해 볼 거에요!!

 

 

📚 알아야 할 기능

- URLScheme

 

1️⃣ URLScheme

iOS에서는 URLScheme을 사용해서 URL을 통해 다른 앱과 연결할 수 있어요.

 

< URLScheme을 사용하는 과정 >

1. 먼저 URLScheme 문자열을 통해 URL 인스턴스를 만들어 줍니다.

2. 그 다음 canOpenURL(_:) 메소드를 통해서 URL 체계를 처리하는 데 앱을 사용할 수 있는지 여부를 확인합니다.

3. 만약 사용가능한 URLScheme이라면 open(_:options:completionHandler:) 메소드를 호출해서 다른 앱을 열게 됩니다.

 

func canOpenURL(_ url: URL) -> Bool

https://developer.apple.com/documentation/uikit/uiapplication/1622952-canopenurl

 

Apple Developer Documentation

 

developer.apple.com

func open(_ url: URL, 
  options: [UIApplication.OpenExternalURLOptionsKey : Any] = [:], 
completionHandler completion: ((Bool) -> Void)? = nil)

https://developer.apple.com/documentation/uikit/uiapplication/1648685-open

 

Apple Developer Documentation

 

developer.apple.com

 


 

 본격적으로 시작하기 전에 !

iOS에서 카카오톡 앱을 실행하기 위해서는 주의해야 할 사항이 있어요

 

XCode 시뮬레이터에서는 실행되지 않습니다. 반드시 iOS디바이스와 연결해서 테스트해주세요!

📌 info.plist에서 Information Property List 옆의 +버튼을 눌러서 LSApplicationQueriesSchemes를 치고 Enter를 눌러 추가해주세요!

 

📌LSApplicationQueriesSchemes의 타입을 Array로 변경해주세요

📌옆의 +버튼을 눌러서 Item0을 만들고, Item0의 Value는 kakaotalk으로 설정해주세요!


 

📲 iOS 디바이스에서 카카오톡 앱 실행하기

클릭 이벤트 시 카카오톡 앱을 실행하도록

버튼 IBAction 내에 카카오톡 앱 실행 행동을 정의해주었습니다.

@IBAction func touchUpToConnectKakaotalk(_ sender: UIButton) {
        //URLScheme 문자열 "kakaotalk://"을 통해 
        let kakaoTalk = "kakaotalk://"
        //URL 인스턴스를 만들어 주는 단계
        let kakaoTalkURL = NSURL(string: kakaoTalk)
        
        
        //canOpenURL(_:) 메소드를 통해서 URL 체계를 처리하는 데 앱을 사용할 수 있는지 여부를 확인
        if (UIApplication.shared.canOpenURL(kakaoTalkURL! as URL)) {
    
            //open(_:options:completionHandler:) 메소드를 호출해서 카카오톡 앱 열기
            UIApplication.shared.open(kakaoTalkURL! as URL)
        }
        //사용 불가능한 URLScheme일 때(카카오톡이 설치되지 않았을 경우)
        else {
            print("No kakaotalk installed.")
        }
    }

1. URLScheme 문자열 "kakaotalk://"을 통해 URL 인스턴스 만들기

2. canOpenURL(_:) 메소드를 통해서 URL 체계를 처리하는 데 앱을 사용할 수 있는지 여부를 확인

3. 사용가능한 URLScheme이라면 open(_:options:completionHandler:) 메소드를 호출해서 카카오톡 실행

4. 사용불가능한 URLScheme이라면(카카오톡이 설치되지 않았다면) print로 실행불가능한 상황임을 확인할 수 있는 로그를 출력

 


 

📲 iOS 디바이스에서 카카오톡 앱 실행하기 구동영상

 

RPReplay_Final1617995922.mov
1.07MB

<전체 코드>

//
//  ViewController.swift
//  KakaoAppConnectPractice
//
//  Created by 황지은 on 2021/04/10.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func touchUpToConnectKakaotalk(_ sender: UIButton) {
        let kakaoTalk = "kakaotalk://"
        let kakaoTalkURL = NSURL(string: kakaoTalk)
        
        if (UIApplication.shared.canOpenURL(kakaoTalkURL! as URL)) {
    
            UIApplication.shared.open(kakaoTalkURL! as URL)
        }
        else {
            print("No kakaotalk installed.")
        }
    }
}

https://github.com/hwangJi-dev/iOS-Practice/tree/master/KakaoAppConnectPractice

 

hwangJi-dev/iOS-Practice

지은 iOS 기록장🍎. Contribute to hwangJi-dev/iOS-Practice development by creating an account on GitHub.

github.com

 

 

 

오늘은 이렇게 아이폰에서 카톡 열기 기능에 대해서 공부를 해봤습니다 :)

여러분들께 유익한 정보가 되었으면 좋겠네요 ㅎㅎ

도움이 되셨다면 공감 눌러주세용!ㅎㅎ

반응형
Comments