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ư các ví dụ sau:

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

Trước khi có thể tạo Đường liên kết động trong ứng dụng Android, bạn phải thêm SDK Firebase. 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 thực hiện.

  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 trong ứng dụng, hãy chỉ định khoá SHA-256.

  4. Trong bảng điều khiển của Firebase, hãy mở mục 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 Liên kết động, hãy ghi lại miền đó. Bạn cần cung cấp một 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. Nên dùng: Trong trình đơn "Thêm" (⋮), 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 ngăn các bên không được uỷ quyền 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à truyền đối tượng đó đến buildLink() hoặc buildShortLink().

Ví dụ tối giản 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 một Đường liên kết động ngắn, hãy truyền đối tượng DynamicLinkParameters đến buildShortLink(). Bạn cần có lệnh gọi mạng để tạo đường liên kết ngắn. 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 hậu tố chỉ dài vài ký tự. Mặc dù việc này giúp đường liên kết trở nên ngắn gọn hơn, nhưng cũng có thể khiến người khác đoán được đường liên kết ngắn hợp lệ. Thông thường, việc này sẽ không gây hại nếu có người 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, bạn nên tạo đường liên kết dài hơn với 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 truyền ShortDynamicLinkType.unguessable vào 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 với một số tham số phổ biến:

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ở ra. 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 tạo logic dành riêng cho ứng dụng (chẳng hạn như ghi có cho người dùng bằng 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 được là một Đường liên kết động khác.
setDomainUriPrefix Tiền tố URL của Đường liên kết động. Bạn có thể tìm thấy tiền tố này trong bảng điều khiển Firebase. Miền Liên kết động sẽ có dạng như các ví dụ sau:
https://example.com/link
https://example.page.link
AndroidParameters
setFallbackUrl Đường liên kết để mở khi người dùng chưa cài đặt ứng dụng. Chỉ định giá trị này để thực hiện một thao tá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 bá cho ứng dụng của bạn.
setMinimumVersion 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ũ, người dùng sẽ được chuyển đế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 để đưa người dùng đến App Store khi họ chưa cài đặt ứng dụng
setFallbackUrl Đường liên kết để mở khi người dùng chưa cài đặt ứng dụng. Chỉ định giá trị này để thực hiện một thao tá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 bá 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 để mở trên iPad khi ứng dụng chưa được cài đặt. Chỉ định giá trị này để làm 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 của nội dung hoặc hiển thị trang quảng bá 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 nhằm mở đường liên kết. Ứng dụng phải được kết nối với dự án của bạn từ trang Tổng quan của bảng điều khiển 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 truyề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 mở Đường liên kết động 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 này 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 đề cần 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ả cần 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à dưới 300 KB.
GoogleAnalyticsParameters
setSource
setMedium
setCampaign
setTerm
setContent
Thông 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 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
Các thông số phân tích của iTunes Connect. Các tham số này ("pt", "at", "ct") được truyền đến App Store.