สร้างลิงก์แบบไดนามิกในแอป 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 ให้เรียกใช้คำสั่งต่อไปนี้ เพื่อติดตั้งปลั๊กอินลิงก์แบบไดนามิก

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

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

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

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

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

      โปรดดูที่อนุญาตรูปแบบ 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);

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

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