-
[DevDiary] 아이폰 앱이 실행되는 여러가지 방법앱등이에게 살충제를 뿌린다./일기는 일기장에 2018. 4. 17. 15:05
아이폰의 앱이 not running 상태일 때, 앱이 실행되는 경우의 수를 살펴보자.
1. 앱의 아이콘을 터치하여 앱을 실행
아주 심플한 루틴이다.
AppDelegate의 didFinishLaunchingWithOptions이 호출되고 무난~하게 실행된다.
2. 푸쉬를 터치하여 앱을 실행
이제 좀 특별한 케이스가 시작된다.
AppDelegate의 didFinishLaunchingWithOptions이 호출되는건 똑같다.
하지만 이 메소드의 launchOptions 파라미터에는 .remoteNotification 키 값에 해당하는 값이 들어있다.
이 값을 검사하여 푸쉬를 통해서 앱을 실행했음을 알 수 있다.
앱이 not running일 때는, AppDelegate의 didReceiveRemoteNotification가 호출되지 않는다.
따라서, launchOptions 검사를 통하여 적절하게 후처리가 필요하다.
3. App Scheme을 통해 앱을 실행
아이폰 Safari앱을 실행한 뒤, 주소창에 kakaotalk:// 을 입력한 뒤 엔터를 쳐보자.
카카오톡이 켜진다.
이번에도 AppDelegate의 didFinishLaunchingWithOptions이 호출되는건 똑같다.
하지만 이 메소드의 launchOptions 파라미터에는 .url 키 값에 해당하는 값이 들어있다.
잘 검사해서 적절한 후처리를 해주도록 하자.
4. Universal Link를 통해 앱을 실행
이 경우는 좀 짜증나는 케이스다.
Universal Link가 호출되면 앱은 running, not running에 관계 없이 func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool을 호출한다.
이번에도 AppDelegate의 didFinishLaunchingWithOptions이 호출되고 launchOptions 파라미터에는 UIApplicationLaunchOptionsKey.userActivityDictionary키 값에 해당하는 값이 들어있다.
그래서 유니버설링크로 실행되었음을 알 수 있다.
더 있겠지?
하지만 일단 생각나는건 여기까지...
'앱등이에게 살충제를 뿌린다. > 일기는 일기장에' 카테고리의 다른 글
WWDC2018 관심 영상 리스트 (0) 2018.06.11 [Cocoapods] High Sierra로 업데이트 한 뒤, pod이 인식이 안된다. (0) 2018.03.02 [DevDiary] 상반기 리뷰 (1) 2017.07.13 [DevDiary] Custom Transition & CoreAnimation (0) 2017.06.24 UITableView와 UICollectionView의 AutoSize에 관하여.. (0) 2017.06.17