import FirebaseDynamicLinks
// DynamicLink 수신
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
let handled = DynamicLinks.dynamicLinks().handleUniversalLink(userActivity.webpageURL!) { dynamiclink, error in
if let urlString = dynamiclink?.url?.absoluteString {
print(urlString)
}
}
return handled
}
// 앱이 Running 상태가 아닐 때 수신
func application(_ application: UIApplication, open url: URL, sourceApplication: String?,
annotation: Any) -> Bool {
if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
// Handle the deep link. For example, show the deep-linked content or
// apply a promotional offer to the user's account.
// ...
return true
}
return false
}
https://firebase.google.com/docs/dynamic-links/create-manually
ius : 커스텀 url scheme
Getting Started with Dynamic Links on iOS - Pt.3: Creating links programmatically (Firecasts) https://www.youtube.com/watch?v=LqCi-TaUfJs https://mrparkcodingschool.tistory.com/19
0. 기본개념
Universal Links
파베가 일종의 universal link 를 제공하는 셈으로 쪼꼬만 웹사이트를 하나주는 꼴로 다이나믹 링크가 사용되는 것이다.
Custom URL Schemes
앱 번들아이디로 url 스킴준다 기본으로
1. Configuration steps
프로젝트를 생성하고 Team ID 와 App ID 를 넣어준다
동적링크를 생성한다.
요렇게 쪼꼬미 웹사이트가 만들어짐
요거 추가해주기
요러면 유니버셜 링크 등록이 완료된다
얘도 등록해준다
그럼 설정완료!
그리고 Firebase 를 프로젝트에 설치해주자
https://github.com/Team-Trit/donworry-ios/issues/168
소스를 추가해보자
AppDelegate.swift에
그러고 링크를 클릭하면 앱으로 잘 들어가진다. 꾹누르면 요렇게 우리앱에서 열지도 확인가능!
2. Create a link
이번엔 새 동적링크를 눌러서 커스텀 URL 을 만들어보자
만들기 시작!
다음으로 딥 링크 URL을 입력하는데 여기에 매개변수를 만들어 값을 앱에 전달할 수 있다. 실제 존재하는 도메인이 아니여도 좋지만 도메인이 있어서 슬쩍 사용해봤다
다음은 앱을 선택해준다
안드로이드 앱은 없으니깐 위에서 정의한 url 로 들어가게 해줌
링크 미리보기 등에 사용된다! 따라서 요기에 앱 마케팅하기에 좋으니깐 무조건 커스텀 하는게 좋다고 한다! (구글이그럼)
그럼 링크가 만들어집니다
그러고 세부정보를 먼저 봅시다 (디버그 너무좋음!)
그럼 full dynamic link 가 나옵니다
그럼 이제 https://donworry.page.link/space 를 눌러도 앱으로 잘 이동을 하게 됩니다.
3. Interpret link in code
link가 들어오면 DynamicLinksLibary 에서 convert 한다 여기서 오리지널 딥링크 파라미터를 찍을 수 있다.
우선 firebase 를 configure 해주자
App Delegate 에서
SceneDelegate.swift
코드로 다이나믹 링크 설정하는법
위에서 파이어베이스 콘솔에서 직접 다이나믹링크를 설정했던 것을 코드에서도 설정할 수 있다.