반응형
Firebase Dynamic Link
- Firebase Dynamic Link는 해당 링크를 클릭시 해당 앱으로 보내주는 방식
1.Firebase 콘솔에서 앱을 추가
##자세한 앱등록 방법은 FCM, APNS 게시글 참고
#App Store ID, Team ID 필수 입력 (*App Store ID 없을때는 임의 입력)
2.Firebase console에서 동적 링크 생성
1-1url 프리픽스 생성
1-2 구글 무료 제공 도메인 링크 추가(page.link 형식)
1-2 새 동적링크 생성
****동적링크 생성전 허용 패턴 지정 필요
1-3 만들어진 프리픽스에 임의 단어 입력
1-4 딥링크 URL
#실제 존재하는 url이 아니어도 가능
#원하는 데이터를 url형식으로 입력
#key: data1, value: deepLinkData1
#key: data2, value: deepLinkData2
1-5 애플 링크 동작 정의
#4번 안드로이드용 링크 동작 default값
#5번 default 값
1-6 생성 완료
#박스 안 url 링크는 해당 앱이 이동하기 위한 중간 지점이자 앱으로 갈 경로를 담고 있음
1-7
3.Firebase Dynamic Link를 수신 코드
1-1 Associated Domain 추가
- url Prefix 중 https:// 를 제외한 값을 추가
**applinks:commonreference.page.link
1-2(1) Appdelegate 코드 추가
1-2(2) SceneDelegate 코드 추가
포그라운드
// MARK: Dynamic link 수신
public func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
if let urlPrefix = userActivity.webpageURL {
DynamicLinks.dynamicLinks().handleUniversalLink(urlPrefix) { (dynamicLink, error) in
guard error == nil else { return }
if dynamicLink == dynamicLink {
self.parsingDynamicLink(dynamicLink: dynamicLink!)
}
}
}
}
func parsingDynamicLink(dynamicLink: DynamicLink) {
guard let url = dynamicLink.url else { return }
guard let components = URLComponents(url: url, resolvingAgainstBaseURL: false), let queryItems = components.queryItems else {
return
}
for queryItem in queryItems {
print("name: ",queryItem.name)
print("value: ",queryItem.value)
}
}
앱이 종료되어있을때
public func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
//앱이 종료된 경우 Firebase dynamicLink
for userActivity in connectionOptions.userActivities {
if let incomingURL = userActivity.webpageURL {
DynamicLinks.dynamicLinks().handleUniversalLink(incomingURL) { (dynamicLink, error) in
guard error == nil else { return }
if dynamicLink == dynamicLink {
self.parsingDynamicLink(dynamicLink: dynamicLink!)
}
}
break
}
}
}
4.테스트 방법
- gmail로 Firebase에서 만들었던 url 프리픽스 링크 전달
- 해당 링크 클릭시 해당 앱으로 이동
이상입니다.
반응형
'Swift' 카테고리의 다른 글
iOS 페이스북 로그인 (0) | 2022.02.26 |
---|---|
iOS 네이버 로그인 (0) | 2022.02.26 |
iOS 카카오 로그인 (0) | 2022.02.26 |
FCM, APNS 연동 방법 (3) | 2022.02.25 |
URL Scheme 딥링크 (0) | 2022.02.25 |