Firebase is back at Google I/O on May 10! Register now

將您的移動 Web 應用用戶轉換為原生應用用戶

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

如果除了漂亮的本機應用程序之外,您還在構建一個出色的移動網站,但注意到本機應用程序的轉化率比網絡上的轉化率更高,該怎麼辦?在這種情況下,將移動網絡用戶轉化為下載您的應用程序可能會促進您的業務發展。雖然將它們從一個移動到另一個可能具有挑戰性,但動態鏈接使它變得容易。只需很少的代碼,您就可以為用戶添加點擊您移動網絡上的鏈接並轉到您應用程序中相應頁面的功能,即使他們必須首先前往 App Store 或 Google Play Store 進行安裝!

主要優勢

  • 將移動網絡用戶轉變為本機應用程序用戶,同時讓他們盡可能舒適地進行轉換。
  • 用戶可以使用他們在您網站上查看的相同內容啟動您的應用程序。
  • 需要很少的集成。

這是開始的方法!

在你開始之前

使您的應用程序的內容可深度鏈接

將移動網絡用戶轉化為本機應用用戶的關鍵是確保用戶在打開應用時看到的內容與他們在網絡上看到的內容相同。因此,在您開始將移動網絡用戶引導至您的應用之前,您的應用需要能夠接收指向內容的深層鏈接。

如果您實施了iOS Universal LinksAndroid App Links ,您可能已經完成了這項工作。但如果沒有,請向您的應用程序添加邏輯,該邏輯從您的網站獲取 URL,並在您的應用程序中向用戶顯示相應的內容。

設置一個新的 Firebase 項目並將動態鏈接 SDK 安裝到您的應用中。 ( iOSAndroidC++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 Store 或 App Store 以安裝該應用程序。然後,應用程序打開, link參數中指定的 URL 被傳遞給它。

在您的應用中打開鏈接的內容

接下來,您需要接收傳遞到您的應用程序的鏈接並打開鏈接的內容,使用 Dynamic Links SDK 很容易做到這一點:

iOS

在 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參數的值,向您的用戶顯示鏈接的內容。

,

如果除了漂亮的本機應用程序之外,您還在構建一個出色的移動網站,但注意到本機應用程序的轉化率比網絡上的轉化率更高,該怎麼辦?在這種情況下,將移動網絡用戶轉化為下載您的應用程序可能會促進您的業務發展。雖然將它們從一個移動到另一個可能具有挑戰性,但動態鏈接使它變得容易。只需很少的代碼,您就可以為用戶添加點擊您移動網絡上的鏈接並轉到您應用程序中相應頁面的功能,即使他們必須首先前往 App Store 或 Google Play Store 進行安裝!

主要優勢

  • 將移動網絡用戶轉變為本機應用程序用戶,同時讓他們盡可能舒適地進行轉換。
  • 用戶可以使用他們在您網站上查看的相同內容啟動您的應用程序。
  • 需要很少的集成。

這是開始的方法!

在你開始之前

使您的應用程序的內容可深度鏈接

將移動網絡用戶轉化為本地應用程序用戶的關鍵是確保用戶在打開應用程序時看到的內容與他們在網絡上看到的內容相同。因此,在您開始將移動網絡用戶引導至您的應用之前,您的應用需要能夠接收指向內容的深層鏈接。

如果您實施了iOS Universal LinksAndroid App Links ,您可能已經完成了這項工作。但如果沒有,請向您的應用程序添加邏輯,該邏輯從您的網站獲取 URL,並在您的應用程序中向用戶顯示相應的內容。

設置一個新的 Firebase 項目並將動態鏈接 SDK 安裝到您的應用中。 ( iOSAndroidC++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 Store 或 App Store 以安裝該應用程序。然後,應用程序打開, link參數中指定的 URL 被傳遞給它。

在您的應用中打開鏈接的內容

接下來,您需要接收傳遞到您的應用程序的鏈接並打開鏈接的內容,使用 Dynamic Links SDK 很容易做到這一點:

iOS

在 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參數的值,向您的用戶顯示鏈接的內容。