Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

모바일 웹 앱 사용자를 기본 앱 사용자로 전환

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

멋진 네이티브 앱 외에도 멋진 모바일 웹사이트를 구축하는 데 어려움을 겪었지만 전환율이 웹보다 네이티브 앱에서 더 좋다는 것을 알게 된다면 어떨까요? 이 경우 모바일 웹 사용자가 앱을 다운로드하도록 전환하면 비즈니스에 활력을 줄 수 있습니다. 하나에서 다른 것으로 이동하는 것은 어려울 수 있지만 동적 링크를 사용하면 쉽게 할 수 있습니다. 아주 작은 코드로 사용자가 모바일 웹에서 링크를 클릭하고 앱의 해당 페이지로 이동할 수 있는 기능을 추가할 수 있습니다. 먼저 앱을 설치하기 위해 App Store 또는 Google Play 스토어로 이동해야 합니다!

주요 혜택

  • 모바일 웹 사용자를 네이티브 앱 사용자로 전환하는 동시에 최대한 편안하게 전환할 수 있습니다.
  • 사용자는 사이트에서 보고 있던 것과 동일한 콘텐츠로 앱을 시작할 수 있습니다.
  • 통합이 거의 필요하지 않습니다.

시작하는 방법은 다음과 같습니다.

시작하기 전에

앱의 콘텐츠를 딥 링크 가능하게 만들기

모바일 웹 사용자를 기본 앱 사용자로 전환하는 핵심은 사용자가 웹에서 보고 있는 앱을 열 때 동일한 콘텐츠를 볼 수 있도록 하는 것입니다. 따라서 모바일 웹 사용자를 앱으로 보내기 전에 앱에서 콘텐츠에 대한 딥 링크를 받을 수 있어야 합니다.

iOS 범용 링크 또는 Android 앱 링크 를 구현했다면 이미 이 작업을 수행했을 것입니다. 그러나 그렇지 않은 경우 웹사이트에서 URL을 가져와 앱 내 해당 콘텐츠를 사용자에게 표시하는 로직을 앱에 추가하세요.

새 Firebase 프로젝트를 설정하고 동적 링크 SDK를 앱에 설치합니다. ( iOS , Android , C++ , Unity ). 동적 링크 SDK를 설치하면 사용자가 앱을 설치한 후 Firebase에서 동적 링크에 대한 데이터를 전달할 수 있습니다. SDK가 없으면 설치 전 클릭으로 설치 후 사용자를 연결할 방법이 없습니다.

이제 사람들을 웹사이트에서 네이티브 앱으로 이동할 링크를 설정할 차례입니다. 사용자가 아직 앱을 설치하지 않았더라도 걱정하지 마십시오. 동적 링크가 이를 처리할 수 있습니다.

웹 사이트의 각 페이지 에서 동적 링크를 동적으로 생성합니다 . 이미 콘텐츠를 딥 링크 가능하게 만들었으므로 link 매개변수는 콘텐츠가 있는 페이지의 URL일 수 있습니다.

이러한 링크는 다음과 같습니다.

<a href="https://example.page.link/?link=https://www.example.com/content?item%3D1234&apn=com.example.android&ibi=com.example.ios">Open this page in our app!</a>

사용자가 기기에서 이 링크를 열 때 apn 매개변수(Android) 또는 ibi 매개변수(iOS)로 지정된 앱이 설치되지 않은 경우 사용자는 앱을 설치하기 위해 Play 스토어 또는 App Store로 이동합니다. 그러면 앱이 열리고 link 매개변수에 지정된 URL이 전달됩니다.

앱에서 연결된 콘텐츠 열기

다음으로 앱에 전달된 링크를 수신하고 링크된 콘텐츠를 열어야 합니다. 동적 링크 SDK를 사용하면 쉽습니다.

아이폰 OS

iOS에서는 application:continueUserActivity:restorationHandler: 메서드를 구현하여 동적 링크를 수신합니다. 복원 처리기에서 handleUniversalLink:completion: 을 호출하여 동적 링크를 가져올 수 있습니다. 동적 링크가 앱에 전달된 경우 FIRDynamicLinkurl 속성에서 가져올 수 있습니다. 예를 들어:

목표-C

참고: 이 Firebase 제품은 macOS, Mac Catalyst, tvOS 또는 watchOS 대상에서 사용할 수 없습니다.
[[FIRDynamicLinks dynamicLinks]
    handleUniversalLink:userActivity.webpageURL
             completion:^(FIRDynamicLink * _Nullable dynamicLink,
                          NSError * _Nullable error) {
      NSString *link = dynamicLink.url;
    }];

빠른

참고: 이 Firebase 제품은 macOS, Mac Catalyst, tvOS 또는 watchOS 대상에서 사용할 수 없습니다.
FIRDynamicLinks.dynamicLinks()?.handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in
    let link = dynamiclink.url
}

또한 application:openURL:options: 메서드에서 dynamicLinkFromCustomSchemeURL: 을 호출하여 앱에 사용자 지정 스키마 URL로 전달된 동적 링크를 수신해야 합니다. 예를 들어:

목표-C

참고: 이 Firebase 제품은 macOS, Mac Catalyst, tvOS 또는 watchOS 대상에서 사용할 수 없습니다.
FIRDynamicLink *dynamicLink = [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url];
if (dynamicLink) {
  NSString *link = dynamicLink.url;
  // ...
  return YES;
}

빠른

참고: 이 Firebase 제품은 macOS, Mac Catalyst, tvOS 또는 watchOS 대상에서 사용할 수 없습니다.
let dynamicLink = FIRDynamicLinks.dynamicLinks()?.dynamicLinkFromCustomSchemeURL(url)
if let dynamicLink = dynamicLink {
  let link = dynamiclink.url
  // ...
  return true
}

이제 link 매개 변수의 값이 있으므로 링크된 콘텐츠를 사용자에게 표시합니다.

기계적 인조 인간

Android에서는 getDynamicLink() 메서드를 사용하여 동적 링크에서 데이터를 가져옵니다.

Kotlin+KTX

Firebase.dynamicLinks
        .getDynamicLink(intent)
        .addOnCompleteListener { task ->
            if (!task.isSuccessful) {
                // Handle error
                // ...
            }

            val invite = FirebaseAppInvite.getInvitation(task.result)
            if (invite != null) {
                // Handle invite
                // ...
            }
        }

Java

FirebaseDynamicLinks.getInstance()
        .getDynamicLink(getIntent())
        .addOnCompleteListener(new OnCompleteListener<PendingDynamicLinkData>() {
            @Override
            public void onComplete(@NonNull Task<PendingDynamicLinkData> task) {
                if (!task.isSuccessful()) {
                    // Handle error
                    // ...
                }

                FirebaseAppInvite invite = FirebaseAppInvite.getInvitation(task.getResult());
                if (invite != null) {
                    // Handle invite
                    // ...
                }
            }
        });

이제 link 매개 변수의 값이 있으므로 링크된 콘텐츠를 사용자에게 표시합니다.