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

Bạn có thể tạo các Đườ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 một Đường liên kết động dài hoặc một đối tượng chứa các tham số của Đườ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 Liên kết động trong ứng dụng Android, bạn phải sử dụng 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 Firebase SDK cho Flutter nếu bạn chưa thực hiện việc này.

  2. Từ 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 trong bảng điều khiển của 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ở mục Đường 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 ghi lại 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: Trên trình đơn "Thêm" (⋮), hãy chỉ định các mẫu URL được phép sử dụng trong đường liên kết sâu và đường liên kết dự phòng của bạn. Khi làm như vậy, bạn sẽ ngăn các bên không được cấp phép tạo Đường liên kết động chuyển hướng từ miền của bạn đến những 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 Đườ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 thiểu sau đây sẽ tạo một Đường liên kết động dài đến https://www.example.com/. Đường liên kết này 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 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, các Đườ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ù cách này giúp các đường liên kết gọn hơn, nhưng cũng mang đến khả năng ai đó có thể đoán được một đường liên kết ngắn hợp lệ. Thường thì việc này không gây ra vấn đề gì vì đường liên kết dẫn đến thông tin công khai.

Tuy nhiên, nếu các đườ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 với hậu tố 17 ký tự để tránh làm việc ai đó đoán được một Đường liên kết động hợp lệ. Để thực hiện việc này, hãy chuyể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ợ. Hãy xem tài liệu tham khảo API.

Ví dụ sau đây sẽ tạo một Liên kết động với một số tham số phổ biến được thiết lập:

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 thông số Đường liên kết động bằng các phương thức sau:

Thông số DynamicLink
setLink Đường liên kết mà ứng dụng của bạn sẽ mở ra. Chỉ định 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ư cấp tín dụng 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 chính xác, đượ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 đường 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 Liên kết động sẽ có dạng như các ví dụ sau:
https://example.com/link
https://example.page.link
Tham số Android
URL dự phòng Đường liên kết để mở khi ứng dụng chưa được cài đặt. Hãy chỉ định lệnh này để làm một việc gì đó ngoài việc cài đặt ứng dụng qua 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 nội dung trên web dành cho thiết bị di động hoặc hiển thị trang quảng cáo cho ứng dụng của bạn.
setMinimumVersion Mã 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à một phiên bản cũ hơn, thì người dùng sẽ được chuyển đến Cửa hàng Play để nâng cấp ứng dụng.
Tham số ios
setAppStoreId Mã App Store của ứng dụng, dùng để đưa người dùng đến App Store khi ứng dụng chưa được cài đặt
URL dự phòng Đường liên kết để mở khi ứng dụng chưa được cài đặt. Hãy chỉ định lệnh này để làm một việc gì đó ngoài việc cài đặt ứng dụng qua App Store khi ứng dụng chưa được cài đặt, chẳng hạn như mở phiên bản nội dung trên web dành cho thiết bị di động hoặc hiển thị trang quảng cáo cho ứng dụng của bạn.
Lược đồ tùy chỉnh Giao thức URL tuỳ chỉnh của ứng dụng, nếu được xác định không phải là mã gói ứng dụng
setIpadFallbackUrl Đường liên kết để mở trên iPad khi ứng dụng chưa được cài đặt. Hãy chỉ định lệnh này để làm một việc gì đó ngoài việc cài đặt ứng dụng 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 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 từ 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 truyền đến ứng dụng của bạn khi ứng dụng được mở và ứng dụng phải quyết định việc cần làm với cờ đó.
Thông số NavigationInfo
setForcedRedirectEnabled Nếu bạn đặt thành "1", hãy bỏ qua trang xem trước ứng dụng khi Đường liên kết động mở, mà 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 đến phù hợp nhất theo 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 muốn chỉ mở Đường liên kết động trong các ứng dụng có thể mở Đường liên kết động mà không cần trang này một cách đáng tin cậy, thì bạn có thể tắt đường liên kết động đó 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.
Tham số SocialMetaTag
Đặt tiêu đề Tiêu đề cần sử dụng khi Đường liên kết động được chia sẻ trong 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 bài đăng trên mạng xã hội.
setImageUrl URL đến 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 300x200 px và nhỏ hơn 300 KB.
Thông số Google Analytics
setSource
setMedium
setCampaign
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 của đường liên kết.
Thông số ItunesConnectAnalytics
setProviderToken
setaffiliateToken
setCampaignToken
Thông số phân tích của iTunes Connect. Các tham số này ("pt", "at", "ct") được chuyển đến App Store.