สร้างลิงก์แบบไดนามิกในแอป Flutter

คุณสามารถสร้างลิงก์ไดนามิกแบบสั้นหรือยาวได้ด้วย Firebase Dynamic Links Builder API API นี้ยอมรับไดนามิกลิงก์แบบยาวหรือออบเจ็กต์ที่มีพารามิเตอร์ไดนามิกลิงก์ และส่งคืน URL ตามตัวอย่างต่อไปนี้:

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

ก่อนที่คุณจะสร้างลิงก์แบบไดนามิกในแอป Android ได้ คุณต้องรวม Firebase SDK ด้วย หากแอปของคุณได้รับการตั้งค่าให้รับลิงก์แบบไดนามิก แสดงว่าคุณได้ทำตามขั้นตอนเหล่านี้แล้ว และคุณสามารถข้ามส่วนนี้ได้

  1. ติดตั้งและเริ่มต้น Firebase SDK สำหรับ Flutter หากคุณยังไม่ได้ดำเนินการ

  2. จากไดเร็กทอรีรูทของโปรเจ็กต์ Flutter ของคุณ ให้รันคำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอิน Dynamic Links:

    flutter pub add firebase_dynamic_links
    
  3. หากคุณกำลังสร้างแอป Android ให้เปิดหน้า การตั้งค่าโปรเจ็กต์ ของคอนโซล Firebase และตรวจสอบว่าคุณได้ระบุคีย์การลงนาม SHA-1 ของคุณแล้ว หากคุณใช้ App Links ให้ระบุคีย์ SHA-256 ด้วย

  4. ในคอนโซล Firebase ให้เปิดส่วน ลิงก์แบบไดนามิก

    1. หากคุณยังไม่ได้ตั้งค่าโดเมนสำหรับลิงก์ไดนามิกของคุณ ให้คลิกปุ่ม เริ่มต้น และปฏิบัติตามคำแนะนำ

      หากคุณมีโดเมน Dynamic Links อยู่แล้ว โปรดจดไว้ คุณต้องระบุโดเมนลิงก์แบบไดนามิกเมื่อคุณสร้างลิงก์แบบไดนามิกโดยทางโปรแกรม

    2. แนะนำ : จากเมนู "เพิ่มเติม" (⋮) ให้ระบุรูปแบบ URL ที่อนุญาตในลิงก์ในรายละเอียดและลิงก์สำรอง การทำเช่นนี้จะเป็นการป้องกันไม่ให้บุคคลที่ไม่ได้รับอนุญาตสร้างลิงก์แบบไดนามิกที่เปลี่ยนเส้นทางจากโดเมนของคุณไปยังไซต์ที่คุณไม่ได้ควบคุม

      ดู อนุญาตรูปแบบ URL ที่เฉพาะเจาะจง

หากต้องการสร้างลิงก์แบบไดนามิก ให้สร้างอ็อบเจ็กต์ DynamicLinkParameters ใหม่และส่งผ่านไปยัง buildLink() หรือ buildShortLink()

ตัวอย่างขั้นต่ำต่อไปนี้จะสร้างลิงก์ไดนามิกแบบยาวไปยัง https://www.example.com/ ที่เปิดด้วย com.example.app.android บน Android และแอป com.example.app.ios บน 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);

หากต้องการสร้างไดนามิกลิงก์แบบสั้น ให้ส่งอ็อบเจ็กต์ DynamicLinkParameters ไปที่ buildShortLink() การสร้างลิงค์แบบสั้นจำเป็นต้องมีการโทรผ่านเครือข่าย ตัวอย่างเช่น:

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);

ตามค่าเริ่มต้น ลิงก์ไดนามิกแบบสั้นจะถูกสร้างขึ้นด้วยส่วนต่อท้ายที่มีความยาวเพียงไม่กี่อักขระ แม้ว่าวิธีนี้จะทำให้ลิงก์มีขนาดกะทัดรัดมากขึ้น แต่ก็ยังทำให้เกิดความเป็นไปได้ที่บางคนอาจคาดเดาลิงก์แบบสั้นที่ถูกต้องได้ มักจะไม่มีอันตรายใดๆ หากมีใครทำเช่นนั้น เนื่องจากลิงก์จะนำไปสู่ข้อมูลสาธารณะ

อย่างไรก็ตาม หากลิงก์แบบสั้นของคุณนำไปสู่ข้อมูลเฉพาะของผู้ใช้ คุณควรสร้างลิงก์ที่ยาวขึ้นโดยมีส่วนต่อท้าย 17 อักขระ ซึ่งทำให้ไม่น่าจะมีใครเดาลิงก์ไดนามิกที่ถูกต้องได้ ในการทำเช่นนั้น ให้ส่ง ShortDynamicLinkType.unguessable ไปยังเมธอด buildShortLink() :

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

คุณสามารถใช้ Dynamic Link Builder API เพื่อสร้างลิงก์แบบไดนามิกด้วยพารามิเตอร์ที่รองรับ ดู การอ้างอิง API

ตัวอย่างต่อไปนี้จะสร้างลิงก์แบบไดนามิกที่มีชุดพารามิเตอร์ทั่วไปหลายชุด:

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);

คุณสามารถตั้งค่าพารามิเตอร์ลิงก์แบบไดนามิกได้ด้วยวิธีต่อไปนี้:

พารามิเตอร์ไดนามิกลิงก์
เซ็ตลิงค์ ลิงก์ที่แอปของคุณจะเปิดขึ้นมา ระบุ URL ที่แอปของคุณสามารถจัดการได้ ซึ่งโดยทั่วไปคือเนื้อหาหรือเพย์โหลดของแอป ซึ่งเริ่มต้นตรรกะเฉพาะแอป (เช่น การให้เครดิตผู้ใช้ด้วยคูปองหรือการแสดงหน้าจอต้อนรับ) ลิงก์นี้ต้องเป็น URL ที่มีรูปแบบดี มีการเข้ารหัส URL อย่างเหมาะสม ใช้ HTTP หรือ HTTPS และไม่สามารถเป็นไดนามิกลิงก์อื่นได้
setDomainUriPrefix คำนำหน้า URL ลิงก์แบบไดนามิกของคุณ ซึ่งคุณดูได้ในคอนโซล Firebase โดเมนลิงก์แบบไดนามิกมีลักษณะเหมือนตัวอย่างต่อไปนี้:
https://example.com/link
https://example.page.link
พารามิเตอร์ Android
setFallbackUrl ลิงก์สำหรับเปิดเมื่อไม่ได้ติดตั้งแอป ระบุการดำเนินการนี้เพื่อทำอย่างอื่นนอกเหนือจากการติดตั้งแอปของคุณจาก Play Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บบนมือถือ หรือแสดงหน้าส่งเสริมการขายสำหรับแอปของคุณ
ตั้งค่าเวอร์ชันขั้นต่ำ versionCode ของเวอร์ชันขั้นต่ำของแอปที่สามารถเปิดลิงก์ได้ หากแอปที่ติดตั้งเป็นเวอร์ชันเก่า ผู้ใช้จะถูกพาไปที่ Play Store เพื่ออัปเกรดแอป
พารามิเตอร์ iOS
setAppStoreId รหัส App Store ของแอปของคุณ ซึ่งใช้เพื่อส่งผู้ใช้ไปยัง App Store เมื่อไม่ได้ติดตั้งแอป
setFallbackUrl ลิงก์สำหรับเปิดเมื่อไม่ได้ติดตั้งแอป ระบุการดำเนินการนี้เพื่อทำอย่างอื่นนอกเหนือจากการติดตั้งแอปของคุณจาก App Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บบนมือถือ หรือแสดงหน้าส่งเสริมการขายสำหรับแอปของคุณ
ตั้งค่า CustomScheme Scheme URL ที่กำหนดเองของแอป หากกำหนดให้เป็นสิ่งอื่นที่ไม่ใช่รหัสชุดของแอป
setIpadFallbackUrl ลิงก์สำหรับเปิดบน iPad เมื่อไม่ได้ติดตั้งแอป ระบุการดำเนินการนี้เพื่อทำอย่างอื่นนอกเหนือจากการติดตั้งแอปของคุณจาก App Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บ หรือแสดงหน้าส่งเสริมการขายสำหรับแอปของคุณ
setIpadBundleId ID ชุดของแอพ iOS ที่จะใช้บน iPad เพื่อเปิดลิงก์ แอปจะต้องเชื่อมต่อกับโปรเจ็กต์ของคุณจากหน้าภาพรวมของคอนโซล Firebase
ตั้งค่าเวอร์ชันขั้นต่ำ หมายเลขเวอร์ชันของเวอร์ชันขั้นต่ำของแอปที่สามารถเปิดลิงก์ได้ ธงนี้จะถูกส่งต่อไปยังแอปของคุณเมื่อเปิดขึ้นมา และแอปของคุณจะต้องตัดสินใจว่าจะทำอย่างไรกับแอปนั้น
ข้อมูลการนำทางพารามิเตอร์
setForcedRedirectEnabled หากตั้งค่าเป็น '1' ให้ข้ามหน้าแสดงตัวอย่างแอปเมื่อเปิดลิงก์ไดนามิก และเปลี่ยนเส้นทางไปยังแอปหรือร้านค้าแทน หน้าแสดงตัวอย่างแอป (เปิดใช้งานโดยค่าเริ่มต้น) สามารถส่งผู้ใช้ไปยังปลายทางที่เหมาะสมที่สุดได้อย่างน่าเชื่อถือมากขึ้นเมื่อเปิดลิงก์แบบไดนามิกในแอป อย่างไรก็ตาม หากคุณคาดว่าไดนามิกลิงก์จะเปิดได้เฉพาะในแอปที่สามารถเปิดไดนามิกลิงก์ได้อย่างน่าเชื่อถือโดยไม่มีหน้านี้ คุณสามารถปิดใช้งานลิงก์ไดนามิกได้ด้วยพารามิเตอร์นี้ พารามิเตอร์นี้จะส่งผลต่อการทำงานของไดนามิกลิงก์บน iOS เท่านั้น
พารามิเตอร์ SocialMetaTag
ตั้งชื่อเรื่อง ชื่อที่จะใช้เมื่อแชร์ไดนามิกลิงก์ในโพสต์โซเชียล
คำอธิบายชุด คำอธิบายที่จะใช้เมื่อมีการแชร์ลิงก์แบบไดนามิกในโพสต์โซเชียล
setImageUrl URL ไปยังรูปภาพที่เกี่ยวข้องกับลิงก์นี้ รูปภาพควรมีขนาดอย่างน้อย 300x200 พิกเซล และน้อยกว่า 300 KB
พารามิเตอร์ Google Analytics
ตั้งค่าแหล่งที่มา
ตั้งปานกลาง
ตั้งค่าแคมเปญ
กำหนดระยะเวลา
ตั้งค่าเนื้อหา
พารามิเตอร์การวิเคราะห์ของ Google Play พารามิเตอร์เหล่านี้ (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) จะถูกส่งต่อไปยัง Play Store รวมถึงเพิ่มต่อท้ายเพย์โหลดของลิงก์
iTunesConnectAnalyticsพารามิเตอร์
setProviderToken
setAffiliateToken
setCampaignToken
พารามิเตอร์การวิเคราะห์ของ iTunes Connect พารามิเตอร์เหล่านี้ (`pt`, `at`, `ct`) จะถูกส่งไปที่ App Store