준코딩

[iOS/Swift] 설치가 안되어있으면 설치화면, 설치가 되어있으면 앱 실행 하기 본문

프로그래밍/IOS (Swift)

[iOS/Swift] 설치가 안되어있으면 설치화면, 설치가 되어있으면 앱 실행 하기

Ljunhyeob - App Dev 2023. 1. 13. 15:33

개발을 하다보면 현재 핸드폰에 깔려있는 다른 앱을 실행시켜야 하는 일이 간혹 있는데요 

만약 깔려있지 않다면 앱스토어로 이동해 어플을 다운하게 유도하고, 깔려있다면 앱을 실행시키는 코드를 작성해 보겠습니다.

 

 

1.버튼 하나를 생성해줍니다. (버튼을 눌렀을때 위 액션 처리를 진행하겠습니다. 앱설치 및 앱 실행)

 

2. 버튼을 눌럿을때 실행할 코드를 내부에 작성해줍니다. 

//
//  ViewController.swift
//  appStoreMove
//
//  Created by 이준협 on 2023/01/13.
//

import UIKit

class ViewController: UIViewController {

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

    @IBAction func startApp(_ sender: Any) {
        let appId = "id362057947"
        if let openApp = URL(string: "scheme://"), UIApplication.shared.canOpenURL(openApp) {
            UIApplication.shared.open(openApp, options: [:], completionHandler: nil)
        } else {
            //앱 미설치시 앱스토어로 연결
            if let openStore = URL(string: "itms-apps://itunes.apple.com/app/\(appId)"), UIApplication.shared.canOpenURL(openStore) {
                UIApplication.shared.open(openStore, options: [:], completionHandler: nil)
            }
        }
    }
    
}

3. 카카오톡 앱의 설치 유무에 따라서 앱스토어로 이동할지, 앱을 실행시킬지 결정하는 코드입니다.

다만 appId는 카카오톡에서 오픈한것 같지만 스키마값이 인터넷을 찾아도 나오지 않네요,,, 그래서 위 코드는 스키마값을 모르기때문에 코드를 실행해도 else 구문만 타서 실행됩니다. 

 

3-1. 아 info 에다가 스키마값을 추가하는걸 해줘야 에러가 안납니다. 

info에서 Queried URL Schemes 에다가 스키마값을 추가해줘야합니다.

 

4. 스키마 값과 appId 구하는건 다른 블로그에 상세하게 적혀있기때문에 따로 작성하지 않겠습니다. 

Comments