Tạo Liên kết động trong ứng dụng Flutter

Bạn có thể tạo Đường liên kết động ngắn hoặc dài bằng API Trình tạo đường liên kết động của Firebase. API này chấp nhận Đường liên kết động dài hoặc một đối tượng chứa các tham số Đường liên kết động và trả về các URL như trong ví dụ sau:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

Trước khi có thể tạo Liên kết động trong ứng dụng Android, bạn phải thêm Firebase SDK. Nếu ứng dụng của bạn được thiết lập để nhận Đường liên kết động, thì bạn đã hoàn tất các bước này và có thể bỏ qua phần này.

  1. Cài đặt và khởi chạy SDK Firebase cho Flutter nếu bạn chưa làm việc này.

  2. Từ thư mục gốc của dự án Flutter, hãy chạy lệnh sau để cài đặt trình bổ trợ Đường liên kết động:

    flutter pub add firebase_dynamic_links
    
  3. Nếu bạn đang tạo một ứng dụng Android, hãy mở trang Cài đặt dự án của bảng điều khiển Firebase và đảm bảo bạn đã chỉ định khoá ký SHA-1. Nếu bạn sử dụng Đường liên kết đến ứng dụng, hãy chỉ định cả khoá SHA-256.

  4. Trong bảng điều khiển của Firebase, hãy mở phần Liên kết động.

    1. Nếu bạn chưa thiết lập miền cho Đường liên kết động, hãy nhấp vào nút Bắt đầu rồi làm theo lời nhắc.

      Nếu bạn đã có miền Đường liên kết động, hãy lưu ý miền đó. Bạn cần cung cấp miền Đường liên kết động khi tạo Đường liên kết động theo phương thức lập trình.

    2. Đề xuất: Trong trình đơn "Khác" (⋮), hãy chỉ định các mẫu URL được phép trong đường liên kết sâu và đường liên kết dự phòng. Bằng cách này, bạn sẽ ngăn các bên không được phép tạo Đường liên kết động chuyển hướng từ miền của bạn đến các trang web mà bạn không kiểm soát.

      Xem phần Cho phép các mẫu URL cụ thể.

Để tạo Đường liên kết động, hãy tạo một đối tượng DynamicLinkParameters mới và chuyển đối tượng đó đến buildLink() hoặc buildShortLink().

Ví dụ tối thiểu sau đây tạo một Đường liên kết động dài đến https://www.example.com/ mở bằng com.example.app.android trên Android và ứng dụng com.example.app.ios trên iOS:

final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
  iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);

Để tạo Đường liên kết động ngắn, hãy chuyển đối tượng DynamicLinkParameters đến buildShortLink(). Việc tạo đường liên kết ngắn yêu cầu một lệnh gọi mạng. Ví dụ:

final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
  iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);

Theo mặc định, Đường liên kết động ngắn được tạo bằng các hậu tố chỉ dài vài ký tự. Mặc dù điều này giúp các đường liên kết trở nên gọn gàng hơn, nhưng cũng có khả năng ai đó có thể đoán được một đường liên kết ngắn hợp lệ. Thường thì không có hại gì nếu ai đó làm như vậy, vì đường liên kết đó dẫn đến thông tin công khai.

Tuy nhiên, nếu đường liên kết ngắn của bạn dẫn đến thông tin dành riêng cho người dùng, thì bạn nên tạo các đường liên kết dài hơn có hậu tố gồm 17 ký tự để người khác khó có thể đoán được Đường liên kết động hợp lệ. Để thực hiện việc này, hãy chuyển ShortDynamicLinkType.unguessable đến phương thức buildShortLink():

final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
    dynamicLinkParams,
    shortLinkType: ShortDynamicLinkType.unguessable,
);

Bạn có thể sử dụng API Trình tạo đường liên kết động để tạo Đường liên kết động bằng bất kỳ tham số nào được hỗ trợ. Xem Tài liệu tham khảo API.

Ví dụ sau đây tạo một Đường liên kết động có một số tham số phổ biến được đặt:

final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(
    packageName: "com.example.app.android",
    minimumVersion: 30,
  ),
  iosParameters: const IOSParameters(
    bundleId: "com.example.app.ios",
    appStoreId: "123456789",
    minimumVersion: "1.0.1",
  ),
  googleAnalyticsParameters: const GoogleAnalyticsParameters(
    source: "twitter",
    medium: "social",
    campaign: "example-promo",
  ),
  socialMetaTagParameters: SocialMetaTagParameters(
    title: "Example of a Dynamic Link",
    imageUrl: Uri.parse("https://example.com/image.png"),
  ),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);

Bạn có thể đặt các tham số Đường liên kết động bằng các phương thức sau:

Tham số DynamicLink
setLink Đường liên kết mà ứng dụng của bạn sẽ mở. Chỉ định một URL mà ứng dụng của bạn có thể xử lý, thường là nội dung hoặc tải trọng của ứng dụng, giúp khởi chạy logic dành riêng cho ứng dụng (chẳng hạn như ghi có cho người dùng một phiếu giảm giá hoặc hiển thị màn hình chào mừng). Đường liên kết này phải là một URL được định dạng đúng cách, được mã hoá URL đúng cách , sử dụng HTTP hoặc HTTPS và không thể là một Đường liên kết động khác.
setDomainUriPrefix Tiền tố URL Liên kết động mà bạn có thể tìm thấy trong bảng điều khiển của Firebase. Miền Đường liên kết động có dạng như trong ví dụ sau:
https://example.com/link
https://example.page.link
AndroidParameters
setFallbackUrl Đường liên kết sẽ mở khi ứng dụng chưa được cài đặt. Hãy chỉ định đường liên kết này để thực hiện một việc khác ngoài việc cài đặt ứng dụng của bạn từ Cửa hàng Play khi ứng dụng chưa được cài đặt, chẳng hạn như mở phiên bản web dành cho thiết bị di động của nội dung hoặc hiển thị trang quảng cáo cho ứng dụng của bạn.
setMinimumVersion Mã phiên bản versionCode của phiên bản tối thiểu của ứng dụng có thể mở đường liên kết. Nếu ứng dụng đã cài đặt là phiên bản cũ hơn, thì người dùng sẽ được đưa đến Cửa hàng Play để nâng cấp ứng dụng.
IosParameters
setAppStoreId Mã App Store của ứng dụng, dùng để gửi người dùng đến App Store khi ứng dụng chưa được cài đặt
setFallbackUrl Đường liên kết sẽ mở khi ứng dụng chưa được cài đặt. Hãy chỉ định đường liên kết này để thực hiện một việc khác ngoài việc cài đặt ứng dụng của bạn từ App Store khi ứng dụng chưa được cài đặt, chẳng hạn như mở phiên bản web dành cho thiết bị di động của nội dung hoặc hiển thị trang quảng cáo cho ứng dụng của bạn.
setCustomScheme Lược đồ URL tuỳ chỉnh của ứng dụng, nếu được xác định là một giá trị khác với mã nhận dạng gói của ứng dụng
setIpadFallbackUrl Đường liên kết sẽ mở trên iPad khi ứng dụng chưa được cài đặt. Hãy chỉ định đường liên kết này để thực hiện một việc khác ngoài việc cài đặt ứng dụng của bạn từ App Store khi ứng dụng chưa được cài đặt, chẳng hạn như mở phiên bản web của nội dung hoặc hiển thị trang quảng cáo cho ứng dụng của bạn.
setIpadBundleId Mã nhận dạng gói của ứng dụng iOS sẽ dùng trên iPad để mở đường liên kết. Ứng dụng phải được kết nối với dự án của bạn trên trang Tổng quan của bảng điều khiển của Firebase.
setMinimumVersion Số phiên bản của phiên bản tối thiểu của ứng dụng có thể mở đường liên kết. Cờ này được chuyển đến ứng dụng của bạn khi ứng dụng được mở và ứng dụng của bạn phải quyết định việc cần làm với cờ này.
NavigationInfoParameters
setForcedRedirectEnabled Nếu được đặt thành '1', hãy bỏ qua trang xem trước ứng dụng khi Đường liên kết động được mở và chuyển hướng đến ứng dụng hoặc cửa hàng. Trang xem trước ứng dụng (được bật theo mặc định) có thể gửi người dùng đến đích đến phù hợp nhất một cách đáng tin cậy hơn khi họ mở Đường liên kết động trong ứng dụng. Tuy nhiên, nếu bạn chỉ muốn Đường liên kết động được mở trong các ứng dụng có thể mở Đường liên kết động một cách đáng tin cậy mà không cần trang này, thì bạn có thể tắt trang đó bằng tham số này. Tham số này sẽ chỉ ảnh hưởng đến hành vi của Đường liên kết động trên iOS.
SocialMetaTagParameters
setTitle Tiêu đề sẽ dùng khi Đường liên kết động được chia sẻ trong một bài đăng trên mạng xã hội.
setDescription Nội dung mô tả sẽ dùng khi Đường liên kết động được chia sẻ trong một bài đăng trên mạng xã hội.
setImageUrl URL đến một hình ảnh liên quan đến đường liên kết này. Hình ảnh phải có kích thước tối thiểu là 300x200 pixel và nhỏ hơn 300 KB.
GoogleAnalyticsParameters
setSource
setMedium
setCampaign
setTerm
setContent
Tham số phân tích của Google Play. Các tham số này (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) cũng được chuyển đến Cửa hàng Play cũng như được thêm vào tải trọng đường liên kết.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
Tham số phân tích của iTunes Connect. Các tham số này (`pt`, `at`, `ct`) được chuyển đến App Store.