[iOS] application(_:open:options:) AppDelegate의 Open URLs 이벤트 처리

Hyunndy·2023년 2월 20일
0

iOS-App-Structure

목록 보기
5/8

🐸

App이 URL로 특정된 리소스를 열어야 할 때 AppDelegate에 수신되는 delegate 메소드에 대해 알아봅니다.

정의

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { ... }

url

  • open할 URL 리소스.
  • 이 리소스는 네트워크 리소스나 파일이 될 수 있습니다.
  • Apple-registered URL Schemes에 대해 알아보려면, 참고하세요.

이 함수는 App의 launch time 때 불리는

func application(_:willFinishLaunchingWithOptions:)
func application(_:didFinishLaunchingWithOptions:) 

위 함수들에서 false를 리턴하면 절대 불리지 않습니다.

만일 App이 Suspended 상태거나 background 실행 중에 URL이 도달한다면, 시스템은 이 메서드를 호출하기위해 App을 foreground 상태로 우선 올립니다.

이 delegation 메서드를 위한 notification은 없습니다.

그래서 어떤 내용이 들어가는지?

예시1)
앱의 특정 기능이 카카오 로그인을 요구한다고 가정할 때,
앱에서 카카오톡으로 이동한 후 사용자가 [동의하고 계속하기] 버튼 또는 로그인 취소버튼을 눌렀을 때 다시 카카오톡에서 앱으로 이동하는 과정을 거칩니다.
이 때 카카오톡에서 앱으로 들어왔을 때 카카오 로그인 처리를 정상적으로 완료하기 위해 이 메서드에 작업합니다.

예시2)
URLScheme으로 온 이벤트를 처리합니다.

예시3)
DeepLink 처리


마무리

실무하면서도 많이 들락날락했던 Delegate 메서드 입니다.
URLScheme, DeepLink도 정리가 필요하겠네요!

profile
https://hyunndyblog.tistory.com/163 티스토리에서 이사 중

0개의 댓글