获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

将您的移动 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参数的值,将链接的内容显示给您的用户。