คุณสร้างลิงก์แบบไดนามิกแบบสั้นหรือแบบยาวได้ด้วย Firebase Dynamic Links Builder API API นี้ยอมรับทั้ง Dynamic Link แบบยาวหรือออบเจ็กต์ที่มีพารามิเตอร์ Dynamic Link และจะแสดงผล URL เช่นตัวอย่างต่อไปนี้
https://example.com/link/WXYZ
https://example.page.link/WXYZ
ตั้งค่า Firebase และ SDK ลิงก์แบบไดนามิก
คุณต้องรวม Firebase SDK ก่อนจึงจะสร้างลิงก์แบบไดนามิกในแอป Android ได้ หากตั้งค่าแอปให้รับ 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 อยู่แล้ว ให้จดบันทึกไว้ คุณต้อง ระบุโดเมนของลิงก์แบบไดนามิกเมื่อสร้างลิงก์แบบไดนามิกโดยอัตโนมัติ
แนะนํา: จากเมนู "เพิ่มเติม" (⋮) ให้ระบุรูปแบบ URL ที่อนุญาตใน Deep 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 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);
คุณตั้งค่าพารามิเตอร์ของ Dynamic Link ได้ด้วยวิธีต่อไปนี้
พารามิเตอร์ DynamicLink | |
---|---|
setLink | ลิงก์ที่แอปจะเปิด ระบุ URL ที่แอปของคุณจัดการได้ โดยปกติจะเป็นเนื้อหาหรือเพย์โหลดของแอป ซึ่งจะเริ่มต้นตรรกะเฉพาะของแอป (เช่น การให้เครดิตผู้ใช้ด้วยคูปองหรือการแสดง หน้าจอต้อนรับ) ลิงก์นี้ต้องเป็น URL ที่จัดรูปแบบอย่างถูกต้อง มีการเข้ารหัส URL อย่างถูกต้อง ใช้ HTTP หรือ HTTPS และต้องไม่ใช่ Dynamic Link อื่น |
setDomainUriPrefix | คำนำหน้า URL ของลิงก์แบบไดนามิก ซึ่งดูได้ในคอนโซล Firebase A
โดเมน Dynamic Link มีลักษณะดังตัวอย่างต่อไปนี้
https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | ลิงก์ที่จะเปิดเมื่อไม่ได้ติดตั้งแอป ระบุการดำเนินการนี้เพื่อทำ อย่างอื่นนอกเหนือจากการติดตั้งแอปจาก Play Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บสำหรับอุปกรณ์เคลื่อนที่ หรือ แสดงหน้าโปรโมตแอป |
setMinimumVersion | รหัสเวอร์ชันของแอปเวอร์ชันขั้นต่ำที่เปิดลิงก์ได้ หากแอปที่ติดตั้งเป็นเวอร์ชันเก่า ระบบจะนำผู้ใช้ไปยัง Play Store เพื่ออัปเกรดแอป |
IosParameters | |
---|---|
setAppStoreId | รหัส App Store ของแอปที่ใช้เพื่อส่งผู้ใช้ไปยัง App Store เมื่อไม่ได้ติดตั้งแอป |
setFallbackUrl | ลิงก์ที่จะเปิดเมื่อไม่ได้ติดตั้งแอป ระบุการดำเนินการนี้เพื่อทำ อย่างอื่นนอกเหนือจากการติดตั้งแอปจาก App Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บสำหรับอุปกรณ์เคลื่อนที่ หรือ แสดงหน้าโปรโมตแอป |
setCustomScheme | สกีม URL ที่กำหนดเองของแอป หากกำหนดให้เป็นอย่างอื่นที่ไม่ใช่ รหัสชุดของแอป |
setIpadFallbackUrl | ลิงก์ที่จะเปิดใน iPad เมื่อไม่ได้ติดตั้งแอป ระบุพารามิเตอร์นี้เพื่อ ทำอย่างอื่นนอกเหนือจากการติดตั้งแอปจาก App Store เมื่อไม่ได้ติดตั้ง แอป เช่น เปิดเนื้อหาเวอร์ชันเว็บ หรือ แสดงหน้าโปรโมตแอป |
setIpadBundleId | รหัส Bundle ของแอป iOS ที่จะใช้ใน iPad เพื่อเปิดลิงก์ แอป ต้องเชื่อมต่อกับโปรเจ็กต์จากหน้าภาพรวมของ คอนโซล Firebase |
setMinimumVersion | หมายเลขเวอร์ชันของเวอร์ชันต่ำสุดของแอปที่เปิดลิงก์ได้ ระบบจะส่งแฟล็กนี้ไปยังแอปเมื่อเปิดแอป และแอปของคุณ ต้องตัดสินใจว่าจะทำอย่างไรกับแฟล็กนี้ |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | หากตั้งค่าเป็น "1" ให้ข้ามหน้าตัวอย่างแอปเมื่อเปิด 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 |