คุณสร้างลิงก์แบบไดนามิกแบบสั้นหรือแบบยาวได้ด้วย Firebase Dynamic Links Builder API API นี้ยอมรับลิงก์แบบไดนามิกแบบยาวหรือออบเจ็กต์ที่มีพารามิเตอร์ลิงก์แบบไดนามิก และแสดงผล URL เช่นตัวอย่างต่อไปนี้
https://example.com/link/WXYZ
https://example.page.link/WXYZ
ตั้งค่า Firebase และ SDK ลิงก์แบบไดนามิก
คุณต้องรวม Firebase SDK ไว้ก่อนจึงจะสร้างลิงก์แบบไดนามิกในแอป Android ได้ หากตั้งค่าแอปให้รับลิงก์แบบไดนามิกแล้ว คุณได้ทำตามขั้นตอนเหล่านี้เรียบร้อยแล้วและข้ามส่วนนี้ได้
ติดตั้งและเริ่มต้นใช้งาน Firebase SDK สำหรับ Flutter หากคุณ ยังไม่ได้ดำเนินการ
จากไดเรกทอรีรากของโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอินลิงก์แบบไดนามิก
flutter pub add firebase_dynamic_linksหากคุณกำลังสร้างแอป Android ให้เปิดหน้าการตั้งค่าโปรเจ็กต์ ของคอนโซล Firebase และตรวจสอบว่าได้ระบุคีย์การลงชื่อ SHA-1 แล้ว หากใช้ App Link ให้ระบุคีย์ SHA-256 ด้วย
ในคอนโซล Firebase ให้เปิดส่วนลิงก์แบบไดนามิก
หากยังไม่ได้ตั้งค่าโดเมนสำหรับลิงก์แบบไดนามิก ให้คลิกปุ่มเริ่มต้นใช้งาน แล้วทำตามข้อความแจ้ง
หากมีโดเมนของลิงก์แบบไดนามิกอยู่แล้ว ให้จดโดเมนนั้นไว้ คุณต้อง ระบุโดเมนของลิงก์แบบไดนามิกเมื่อสร้างลิงก์แบบไดนามิกโดยอัตโนมัติ

แนะนำ: จากเมนู "เพิ่มเติม" (⋮) ให้ระบุรูปแบบ URL ที่อนุญาตให้ใช้ใน Deep Link และลิงก์สำรอง การดำเนินการดังกล่าวจะป้องกันไม่ให้บุคคลที่ไม่ได้รับอนุญาตสร้างลิงก์แบบไดนามิกที่เปลี่ยนเส้นทางจากโดเมนของคุณไปยังเว็บไซต์ที่คุณไม่ได้ควบคุม
สร้างลิงก์แบบไดนามิกจากพารามิเตอร์
หากต้องการสร้างลิงก์แบบไดนามิก ให้สร้างออบเจ็กต์ 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);
คุณสามารถตั้งค่าพารามิเตอร์ลิงก์แบบไดนามิกด้วยเมธอดต่อไปนี้
| พารามิเตอร์ลิงก์แบบไดนามิก | |
|---|---|
| setLink | ลิงก์ที่แอปจะเปิด ระบุ URL ที่แอปจัดการได้ โดยปกติจะเป็นเนื้อหาหรือเพย์โหลดของแอป ซึ่งจะเริ่มต้นตรรกะที่เฉพาะเจาะจงของแอป (เช่น การให้คูปองแก่ผู้ใช้หรือการแสดงหน้าจอต้อนรับ) ลิงก์นี้ต้องเป็น URL ที่จัดรูปแบบอย่างถูกต้อง เข้ารหัส URL อย่างเหมาะสม ใช้ HTTP หรือ HTTPS และต้องไม่ใช่ลิงก์แบบไดนามิกอื่น |
| setDomainUriPrefix | คำนำหน้า URL ของลิงก์แบบไดนามิก ซึ่งดูได้ในคอนโซล Firebase โดเมนของลิงก์แบบไดนามิกจะมีลักษณะคล้ายกับตัวอย่างต่อไปนี้
https://example.com/link https://example.page.link |
| AndroidParameters | |
|---|---|
| setFallbackUrl | ลิงก์ที่จะเปิดเมื่อไม่ได้ติดตั้งแอป ระบุลิงก์นี้เพื่อดำเนินการอย่างอื่นนอกเหนือจากการติดตั้งแอปจาก Play Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บบนมือถือ หรือแสดงหน้าโปรโมชันสำหรับแอป |
| setMinimumVersion | versionCode ของแอปเวอร์ชันต่ำสุดที่เปิด ลิงก์ได้ หากแอปที่ติดตั้งเป็นเวอร์ชันเก่า ระบบจะนำผู้ใช้ไปยัง Play Store เพื่ออัปเกรดแอป |
| IosParameters | |
|---|---|
| setAppStoreId | รหัส App Store ของแอปที่ใช้ส่งผู้ใช้ไปยัง App Store เมื่อไม่ได้ติดตั้งแอป |
| setFallbackUrl | ลิงก์ที่จะเปิดเมื่อไม่ได้ติดตั้งแอป ระบุลิงก์นี้เพื่อดำเนินการอย่างอื่นนอกเหนือจากการติดตั้งแอปจาก App Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บบนมือถือ หรือแสดงหน้าโปรโมชันสำหรับแอป |
| setCustomScheme | URL Scheme ที่กำหนดเองของแอป หากกำหนดให้เป็นอย่างอื่นที่ไม่ใช่ รหัสชุดของแอป |
| setIpadFallbackUrl | ลิงก์ที่จะเปิดใน iPad เมื่อไม่ได้ติดตั้งแอป ระบุลิงก์นี้เพื่อ ดำเนินการอย่างอื่นนอกเหนือจากการติดตั้งแอปจาก App Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บ หรือแสดงหน้าโปรโมชันสำหรับแอป |
| setIpadBundleId | รหัสชุดของแอป iOS ที่จะใช้ใน iPad เพื่อเปิดลิงก์ แอป ต้องเชื่อมต่อกับโปรเจ็กต์จากหน้าภาพรวมของ คอนโซล Firebase |
| setMinimumVersion | หมายเลขเวอร์ชันของแอปเวอร์ชันต่ำสุดที่เปิด ลิงก์ได้ ระบบจะส่งแฟล็กนี้ไปยังแอปเมื่อเปิดแอป และแอป ต้องตัดสินใจว่าจะทำอย่างไรกับแฟล็กนี้ |
| NavigationInfoParameters | |
|---|---|
| setForcedRedirectEnabled | หากตั้งค่าเป็น '1' ให้ข้ามหน้าตัวอย่างแอปเมื่อเปิดลิงก์แบบไดนามิก และเปลี่ยนเส้นทางไปยังแอปหรือ Store แทน หน้าตัวอย่างแอป (เปิดใช้โดยค่าเริ่มต้น) สามารถส่งผู้ใช้ไปยังปลายทางที่เหมาะสมที่สุด ได้อย่างน่าเชื่อถือมากขึ้นเมื่อเปิดลิงก์แบบไดนามิกในแอป อย่างไรก็ตาม หากคุณคาดหวังให้เปิดลิงก์แบบไดนามิกในแอปที่เปิดลิงก์แบบไดนามิกได้อย่างน่าเชื่อถือโดยไม่ต้องใช้หน้านี้ คุณสามารถปิดใช้ได้ด้วยพารามิเตอร์นี้ พารามิเตอร์นี้จะส่งผลต่อลักษณะการทำงานของลิงก์แบบไดนามิก ใน iOS เท่านั้น |
| SocialMetaTagParameters | |
|---|---|
| setTitle | ชื่อที่จะใช้เมื่อแชร์ลิงก์แบบไดนามิกในโพสต์บนโซเชียล |
| setDescription | คำอธิบายที่จะใช้เมื่อแชร์ลิงก์แบบไดนามิกในโพสต์บนโซเชียล |
| setImageUrl | URL ของรูปภาพที่เกี่ยวข้องกับลิงก์นี้ รูปภาพควรมีขนาดอย่างน้อย 300x200 พิกเซล และไม่เกิน 300 KB |
| GoogleAnalyticsParameters | |
|---|---|
| setSource setMedium setCampaign setTerm setContent |
พารามิเตอร์การวิเคราะห์ของ Google Play ระบบจะส่งพารามิเตอร์เหล่านี้ (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) ไปยัง Play Store รวมถึงต่อท้ายเพย์โหลดของลิงก์ด้วย |
| ItunesConnectAnalyticsParameters | |
|---|---|
| setProviderToken setAffiliateToken setCampaignToken |
พารามิเตอร์การวิเคราะห์ของ iTunes Connect ระบบจะส่งพารามิเตอร์เหล่านี้ (`pt`, `at`, `ct`) ไปยัง App Store |