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

Chuyển đổi người dùng ứng dụng web dành cho thiết bị di động của bạn thành người dùng ứng dụng gốc

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Điều gì sẽ xảy ra nếu bạn gặp khó khăn trong việc xây dựng một trang web di động tuyệt vời bên cạnh một ứng dụng gốc đẹp mắt, nhưng nhận thấy rằng tỷ lệ chuyển đổi của bạn trong ứng dụng gốc tốt hơn so với trên web. Trong trường hợp này, việc chuyển đổi người dùng web di động tải xuống ứng dụng của bạn có thể giúp doanh nghiệp của bạn phát triển. Mặc dù việc di chuyển chúng từ cái này sang cái khác có thể là một thách thức, nhưng Dynamic Links giúp việc này trở nên dễ dàng. Với rất ít mã, bạn có thể thêm khả năng người dùng nhấp vào liên kết trên web di động của bạn và được đưa đến trang tương ứng trong ứng dụng của bạn, ngay cả khi họ phải truy cập App Store hoặc Google Play Store để cài đặt ứng dụng đó trước!

Lợi ích chính

  • Biến người dùng web trên thiết bị di động thành người dùng ứng dụng gốc đồng thời giúp quá trình chuyển đổi trở nên thoải mái nhất có thể đối với họ.
  • Người dùng có thể bắt đầu ứng dụng của bạn với cùng nội dung họ đang xem trên trang web của bạn.
  • Rất ít tích hợp cần thiết.

Đây là cách để bắt đầu!

Trước khi bắt đầu

Làm cho nội dung ứng dụng của bạn có thể liên kết sâu

Chìa khóa để chuyển đổi người dùng web di động thành người dùng ứng dụng gốc là đảm bảo người dùng nhìn thấy cùng một nội dung khi họ mở ứng dụng mà họ đang xem trên web. Vì vậy, trước khi bạn có thể bắt đầu gửi người dùng web di động đến ứng dụng của mình, ứng dụng của bạn cần có khả năng nhận liên kết sâu tới nội dung.

Nếu bạn đã triển khai Liên kết chung iOS hoặc Liên kết ứng dụng Android , thì có thể bạn đã hoàn thành công việc này. Nhưng nếu không, hãy thêm logic vào ứng dụng của bạn để lấy URL từ trang web của bạn và hiển thị nội dung tương ứng trong ứng dụng của bạn cho người dùng.

Thiết lập dự án Firebase mới và cài đặt SDK liên kết động vào ứng dụng của bạn. ( iOS , Android , C++ , Unity ). Cài đặt SDK liên kết động cho phép Firebase truyền dữ liệu về Liên kết động sau khi người dùng cài đặt ứng dụng. Nếu không có SDK, không có cách nào để kết nối người dùng sau khi cài đặt với một cú nhấp chuột trước khi cài đặt.

Bây giờ là lúc thiết lập các liên kết sẽ chuyển mọi người từ trang web của bạn sang ứng dụng gốc của bạn. Đừng lo lắng nếu người dùng của bạn chưa cài đặt ứng dụng; Liên kết động có thể giải quyết vấn đề đó cho bạn.

Trên mỗi trang của trang web của bạn, hãy tự động tạo Liên kết động . Vì bạn đã làm cho nội dung của mình có thể liên kết sâu nên tham số link có thể chỉ đơn giản là URL của trang chứa nội dung đó.

Đây là những gì một liên kết như vậy có thể trông giống như:

<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>

Khi người dùng mở liên kết này trên thiết bị của họ, nếu ứng dụng được chỉ định bởi thông số apn (trên Android) hoặc thông số ibi (trên iOS) chưa được cài đặt, thì người dùng sẽ được đưa đến Cửa hàng Play hoặc App Store để cài đặt ứng dụng. Sau đó, ứng dụng sẽ mở ra và URL được chỉ định trong thông số link được chuyển đến ứng dụng.

Mở nội dung được liên kết trong ứng dụng của bạn

Tiếp theo, bạn cần nhận liên kết được chuyển đến ứng dụng của mình và mở nội dung được liên kết, điều này thật dễ dàng khi sử dụng SDK liên kết động:

iOS

Trên iOS, bạn nhận được Liên kết động bằng cách triển khai phương thức application:continueUserActivity:restorationHandler: :. Trong trình xử lý khôi phục, bạn có thể lấy Liên kết động bằng cách gọi handleUniversalLink:completion: . Nếu Liên kết động được chuyển đến ứng dụng của bạn, bạn có thể lấy liên kết đó từ thuộc tính url của FIRDynamicLink . Ví dụ:

Mục tiêu-C

Lưu ý: Sản phẩm Firebase này không khả dụng trên các mục tiêu macOS, Mac Catalyst, tvOS hoặc watchOS.
[[FIRDynamicLinks dynamicLinks]
    handleUniversalLink:userActivity.webpageURL
             completion:^(FIRDynamicLink * _Nullable dynamicLink,
                          NSError * _Nullable error) {
      NSString *link = dynamicLink.url;
    }];

Nhanh

Lưu ý: Sản phẩm Firebase này không khả dụng trên các mục tiêu macOS, Mac Catalyst, tvOS hoặc watchOS.
FIRDynamicLinks.dynamicLinks()?.handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in
    let link = dynamiclink.url
}

Ngoài ra, bạn phải gọi dynamicLinkFromCustomSchemeURL: trong application:openURL:options: để nhận Liên kết động được chuyển đến ứng dụng của bạn dưới dạng URL lược đồ tùy chỉnh. Ví dụ:

Mục tiêu-C

Lưu ý: Sản phẩm Firebase này không khả dụng trên các mục tiêu macOS, Mac Catalyst, tvOS hoặc watchOS.
FIRDynamicLink *dynamicLink = [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url];
if (dynamicLink) {
  NSString *link = dynamicLink.url;
  // ...
  return YES;
}

Nhanh

Lưu ý: Sản phẩm Firebase này không khả dụng trên các mục tiêu macOS, Mac Catalyst, tvOS hoặc watchOS.
let dynamicLink = FIRDynamicLinks.dynamicLinks()?.dynamicLinkFromCustomSchemeURL(url)
if let dynamicLink = dynamicLink {
  let link = dynamiclink.url
  // ...
  return true
}

Bây giờ bạn đã có giá trị của tham số link , hãy hiển thị nội dung được liên kết cho người dùng của bạn.

Android

Trên Android, bạn sử dụng phương thức getDynamicLink() để lấy dữ liệu từ Dynamic Link:

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

Bây giờ bạn đã có giá trị của tham số link , hãy hiển thị nội dung được liên kết cho người dùng của bạn.