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

แนะนำ: จากเมนู "เพิ่มเติม" (⋮) ให้ระบุรูปแบบ URL ที่อนุญาตใน Deep Link และลิงก์สำรอง การดำเนินการนี้จะช่วยป้องกันไม่ให้บุคคลที่ไม่ได้รับอนุญาตสร้างลิงก์แบบไดนามิกที่เปลี่ยนเส้นทางจากโดเมนของคุณไปยังเว็บไซต์ที่คุณไม่ได้ควบคุม
สร้าง Dynamic Link จากพารามิเตอร์
หากต้องการสร้าง Dynamic Link ให้สร้างออบเจ็กต์ DynamicLinkParameters ใหม่และส่งไปยัง
buildLink() หรือ buildShortLink()
ตัวอย่างที่เรียบง่ายต่อไปนี้สร้าง Dynamic Link แบบยาวไปยัง
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);
หากต้องการสร้าง Dynamic Link แบบสั้น ให้ส่งออบเจ็กต์ 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);
โดยค่าเริ่มต้น ระบบจะสร้างลิงก์แบบไดนามิกแบบสั้นที่มีคำต่อท้ายซึ่งมีความยาวเพียงไม่กี่ อักขระ แม้ว่าวิธีนี้จะทำให้ลิงก์กะทัดรัดมากขึ้น แต่ก็อาจทำให้มีคนเดาลิงก์สั้นที่ถูกต้องได้ โดยส่วนใหญ่แล้ว การกระทำดังกล่าวไม่ได้ก่อให้เกิด อันตรายใดๆ เนื่องจากลิงก์จะนำไปยังข้อมูลสาธารณะ
อย่างไรก็ตาม หาก Short Link นำไปยังข้อมูลที่เฉพาะเจาะจงสำหรับผู้ใช้ คุณควร
สร้างลิงก์ที่ยาวขึ้นโดยมีคำต่อท้าย 17 อักขระ ซึ่งจะทำให้
ผู้อื่นคาดเดา Dynamic Link ที่ถูกต้องได้ยากมาก โดยส่ง ShortDynamicLinkType.unguessable
ไปยังเมธอด buildShortLink() ดังนี้
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
dynamicLinkParams,
shortLinkType: ShortDynamicLinkType.unguessable,
);
พารามิเตอร์ของ Dynamic Link
คุณสามารถใช้ Dynamic Link Builder API เพื่อสร้าง Dynamic Link ด้วยพารามิเตอร์ที่รองรับ ดูเอกสารอ้างอิง API
ตัวอย่างต่อไปนี้สร้าง Deep Link ที่มีพารามิเตอร์ทั่วไปหลายรายการ ที่ตั้งค่าไว้
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);
คุณตั้งค่าพารามิเตอร์ของ Dynamic Link ได้ด้วยวิธีต่อไปนี้
| พารามิเตอร์ DynamicLink | |
|---|---|
| setLink | ลิงก์ที่แอปจะเปิด ระบุ URL ที่แอปของคุณจัดการได้ โดยปกติจะเป็นเนื้อหาหรือเพย์โหลดของแอป ซึ่งจะเริ่มต้นตรรกะเฉพาะของแอป (เช่น การให้เครดิตผู้ใช้ด้วยคูปองหรือการแสดง หน้าจอต้อนรับ) ลิงก์นี้ต้องเป็น URL ที่จัดรูปแบบอย่างถูกต้อง มีการเข้ารหัส URL อย่างถูกต้อง ใช้ HTTP หรือ HTTPS และต้องไม่ใช่ Dynamic Link อื่น |
| setDomainUriPrefix | คำนำหน้า URL ของลิงก์แบบไดนามิก ซึ่งคุณดูได้ในคอนโซล Firebase โดเมน Dynamic Link มีลักษณะดังตัวอย่างต่อไปนี้
https://example.com/link https://example.page.link |
| AndroidParameters | |
|---|---|
| setFallbackUrl | ลิงก์ที่จะเปิดเมื่อไม่ได้ติดตั้งแอป ระบุการดำเนินการนี้เพื่อทำ อย่างอื่นนอกเหนือจากการติดตั้งแอปจาก Play Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บสำหรับอุปกรณ์เคลื่อนที่ หรือ แสดงหน้าโปรโมตสำหรับแอป |
| setMinimumVersion | <code>versionCode</code> ของแอปเวอร์ชันขั้นต่ำที่เปิดลิงก์ได้ หากแอปที่ติดตั้งเป็นเวอร์ชันเก่า ระบบจะนำผู้ใช้ไปยัง 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" ให้ข้ามหน้าตัวอย่างแอปเมื่อเปิด Dynamic Link และเปลี่ยนเส้นทางไปยังแอปหรือ Store แทน หน้าตัวอย่างแอป (เปิดใช้โดยค่าเริ่มต้น) จะนำผู้ใช้ไปยังปลายทางที่ เหมาะสมที่สุดได้อย่างน่าเชื่อถือมากขึ้นเมื่อผู้ใช้เปิด Dynamic Link ในแอป อย่างไรก็ตาม หากคุณคาดหวังให้เปิด Dynamic Link ในแอปที่เปิด Dynamic Link ได้อย่างน่าเชื่อถือโดยไม่มีหน้านี้เท่านั้น คุณก็ปิดใช้ได้ด้วยพารามิเตอร์นี้ พารามิเตอร์นี้จะมีผลต่อลักษณะการทำงานของลิงก์แบบไดนามิก ใน iOS เท่านั้น |
| SocialMetaTagParameters | |
|---|---|
| setTitle | ชื่อที่จะใช้เมื่อแชร์ Dynamic Link ในโพสต์โซเชียล |
| setDescription | คำอธิบายที่จะใช้เมื่อแชร์ Dynamic Link ในโพสต์โซเชียล |
| 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 |