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 Liên kết động dài hoặc một đối tượng chứa Liên kết động tham số 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 có Firebase SDK. Nếu ứng dụng của bạn được thiết lập để nhận Liên kết động, bạn đã đã hoàn thành các bước này hay bạn 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.

  2. Từ gốc của dự án Flutter, hãy chạy lệnh sau để cài đặt trình bổ trợ 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ở phần Project settings (Cài đặt dự án) của bảng điều khiển của Firebase và đảm bảo bạn đã chỉ định SHA-1 khoá ký. 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 Liên kết động, 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 Đườ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 bạn tạo Đường liên kết động theo phương thức lập trình.

    2. Nên dùng: Trong phần "Xem thêm" (⋮), chỉ định URL được cho phép trong đường liên kết sâu và đường liên kết dự phòng. Bằng cách làm như vậy, bạn 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 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 Đường liên kết động, hãy tạo một đối tượng DynamicLinkParameters mới rồi truyền đối tượng đó vào buildLink() hoặc buildShortLink().

Ví dụ tối giản sau đây sẽ 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 Đườ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ỉ gồm một vài ký tự. Mặc dù điều này làm cho các đường liên kết gọn hơn, nhưng cũng giới thiệu: khả năng người nào đó có thể đoán được một đường liên kết ngắn hợp lệ. Thường thì không có nếu có ai đó làm vậy, vì đường 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 từng người dùng, bạn nên tạo các liên kết dài hơn với hậu tố 17 ký tự khiến rất khó có khả năng ai đó có thể đoán được một Liên kết động hợp lệ. Để làm như vậ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 Liên kết động bằng bất kỳ các tham số được hỗ trợ. Hãy xem tài liệu tham khảo API.

Ví dụ sau đây sẽ tạo một Đường liên kết động với một vài thông số phổ biến đặ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 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, điều này sẽ bắt đầu dành riêng cho ứng dụng logic (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). Liên kết này phải là một URL được định dạng tốt, phải chính xác URL được mã hoá, sử dụng HTTP hoặc HTTPS và không được là URL động Đường liên kết.
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. Đáp 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. Chỉ định thao tác này 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ã versionCode của phiên bản tối thiểu của ứng dụng có thể mở . Nếu ứng dụng cần cài đặt là một 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.
Tham số ios
setAppStoreId Mã App Store của ứng dụng, được 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. Chỉ định thao tác này 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.
Lược đồ tùy chỉnh Lược đồ URL tùy chỉnh của ứng dụng, nếu được xác định là lược đồ URL không phải là 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 cho làm 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 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ở . 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 cần làm gì với thông tin đó.
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ở 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 điểm đến thích hợp khi mở Đường liên kết động trong ứng dụng; tuy nhiên, nếu bạn muốn một Đường liên kết động chỉ mở trong các ứng dụng có thể mở Liên kết động đáng tin cậy khi không có trang này, bạn có thể tắt nó bằng nút này . Thông số này sẽ ảnh hưởng đến hoạt động của Liên kết động chỉ có 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 ít nhất 300x200 pixel và dưới 300 KB.
Thông số GoogleAnalytics
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 thông số này (`pt`, `at`, `ct`) được chuyển đến App Store.