將移動 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 被傳遞給它。

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

接下來,您需要接收傳遞給您的應用的鏈接並打開鏈接的內容,這很容易使用動態鏈接 SDK:

iOS

在 iOS 上,您通過實現application:continueUserActivity:restorationHandler:方法來接收動態鏈接。在恢復處理程序中,您可以通過調用handleUniversalLink:completion:來獲取動態鏈接。如果動態鏈接已傳遞給您的應用,您可以從FIRDynamicLinkurl屬性中獲取它。例如:

Objective-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 傳遞給您的應用程序的動態鏈接。例如:

Objective-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()方法從動態鏈接獲取數據:

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
                    // ...
                }
            }
        });

Kotlin+KTX

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

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

現在您有了link參數的值,將鏈接的內容顯示給您的用戶。