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

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

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.

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

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

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

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

  2. Từ thư mục gốc của dự án Flutter của bạn, hãy chạy lệnh sau để cài đặt plugin Dynamic Links:

    flutter pub add firebase_dynamic_links
    
  3. Nếu bạn đang tạo ứ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 rằng bạn đã chỉ định khóa ký SHA-1 của mình. Nếu bạn sử dụng Liên kết ứng dụng, hãy chỉ định cả khóa SHA-256 của bạn.

  4. Trong bảng điều khiển 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 Liên kết động của mình, hãy nhấp vào nút Bắt đầu và làm theo lời nhắc.

      Nếu bạn đã có miền Liên kết động, hãy lưu ý về nó. Bạn cần cung cấp miền Liên kết động khi tạo Liên kết động theo chương trình.

    2. Khuyến nghị : Từ menu "Khác" (⋮), hãy chỉ định các mẫu URL được phép trong liên kết sâu và liên kết dự phòng của bạn. Bằng cách làm như vậy, bạn ngăn các bên trái phép tạo 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 Cho phép các mẫu URL cụ thể .

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

Ví dụ tối thiểu sau đây tạo một Liên kết động dài tới 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 Liên kết động ngắn, hãy chuyển đối tượng DynamicLinkParameters tới buildShortLink() . Xây dựng liên kết ngắn yêu cầu một cuộc 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, Liên kết động ngắn được tạo với các hậu tố chỉ dài một vài ký tự. Mặc dù điều này làm cho các liên kết gọn gàng hơn, nhưng nó cũng tạo ra khả năng ai đó có thể đoán được một liên kết ngắn hợp lệ. Thông thường, không có hại gì nếu ai đó làm như vậy, vì liên kết dẫn đến thông tin công khai.

Tuy nhiên, nếu các 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 liên kết dài hơn với các hậu tố gồm 17 ký tự để khiến người khác khó có thể đoán được một Liên kết động hợp lệ. Để làm như vậy, hãy chuyển ShortDynamicLinkType.unguessable cho 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 liên kết động để tạo Liên kết động với bất kỳ tham số nào được hỗ trợ. Xem tài liệu tham khảo API .

Ví dụ sau tạo Liên kết động với 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ố Liên kết động bằng các phương pháp sau:

Tham số DynamicLink
thiết lậpLink 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, bắt đầu 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). Liên kết này phải là một URL có định dạng tốt, được mã hóa URL đúng cách, sử dụng HTTP hoặc HTTPS và không thể là một Liên kết động khác.
setDomainUriPrefix Tiền tố URL liên kết động của bạn, 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 trông giống như các ví dụ sau:
https://example.com/link
https://example.page.link
Tham số Android
setFallbackUrl Liên kết để mở khi chưa cài đặt ứng dụng. Chỉ định điều này để thực hiện một việc khác ngoài 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 của phiên bản tối thiểu của ứng dụng có thể mở 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.
Thông số Ios
setAppStoreId ID App Store của ứng dụng của bạn, được sử dụng để đưa người dùng đến App Store khi ứng dụng chưa được cài đặt
setFallbackUrl Liên kết để mở khi chưa cài đặt ứng dụng. Chỉ định điều này để làm điều gì đó 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 tùy chỉnh của ứng dụng của bạn, nếu được định nghĩa là thứ gì đó khác với ID gói của ứng dụng của bạn
setIpadFallbackUrl Liên kết để mở trên iPad khi chưa cài đặt ứng dụng. Chỉ định điều này để làm điều gì đó 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 ID gói của ứng dụng iOS sử dụng trên iPad để mở 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ở liên kết. Cờ này được chuyển đến ứng dụng của bạn khi nó được mở và ứng dụng của bạn phải quyết định phải làm gì với nó.
Điều hướngThông sốThông số
setForcedRedirectEnabled Nếu được đặt thành '1', hãy bỏ qua trang xem trước ứng dụng khi Liên kết động được mở và thay vào đó hãy 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ể đưa người dùng đến đích thích hợp nhất một cách đáng tin cậy hơn khi họ mở Liên kết động trong ứng dụng; tuy nhiên, nếu bạn muốn Liên kết động chỉ được mở trong các ứng dụng có thể mở 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 liên kết đó bằng tham số này. Tham số này sẽ chỉ ảnh hưởng đến hoạt động của Liên kết động trên iOS.
Tham số MetaTag xã hội
đặtTiêu đề Tiêu đề được sử dụng khi Liên kết động được chia sẻ trong bài đăng trên mạng xã hội.
setMô tả Mô tả sẽ sử dụng khi Liên kết động được chia sẻ trong bài đăng trên mạng xã hội.
setImageUrl URL của một hình ảnh liên quan đến liên kết này. Hình ảnh phải có kích thước tối thiểu 300x200 px và nhỏ hơn 300 KB.
Thông số GoogleAnalytics
setSource
setMedium
thiết lập chiến dịch
setTerm
setContent
Thông số phân tích của Google Play. Các thông 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 liên kết.
Thông số ItunesConnectAnalytics
setProviderToken
setAffiliateToken
setCampaignToken
Thông số phân tích iTunes Connect. Các tham số này (`pt`, `at`, `ct`) được chuyển đến App Store.