คุณสามารถสร้างลิงก์แบบไดนามิกแบบสั้นหรือแบบยาวได้ด้วย Firebase Dynamic Links Builder API API นี้ยอมรับทั้งลิงก์ไดนามิกแบบยาวหรืออ็อบเจ็กต์ที่มีพารามิเตอร์ลิงก์ไดนามิก และส่งคืน URL ดังตัวอย่างต่อไปนี้:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
ตั้งค่า Firebase และ Dynamic Links SDK
ก่อนที่คุณจะสามารถสร้างลิงก์แบบไดนามิกในแอป Android คุณต้องรวม Firebase SDK หากแอปของคุณได้รับการตั้งค่าให้รับลิงก์แบบไดนามิก แสดงว่าคุณได้ดำเนินการตามขั้นตอนเหล่านี้แล้ว และคุณสามารถข้ามส่วนนี้ได้
ติดตั้งและเริ่มต้น Firebase SDK สำหรับ Flutter หากคุณยังไม่ได้ดำเนินการ
จากไดเร็กทอรีรูทของโปรเจ็กต์ Flutter ให้รันคำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอิน Dynamic Links:
flutter pub add firebase_dynamic_links
หากคุณกำลังสร้างแอป Android ให้เปิดหน้า การตั้งค่าโครงการ ของคอนโซล Firebase และตรวจสอบว่าคุณได้ระบุคีย์การลงนาม SHA-1 แล้ว หากคุณใช้ App Links ให้ระบุคีย์ SHA-256 ของคุณด้วย
ในคอนโซล Firebase ให้เปิดส่วน ลิงก์แบบไดนามิก
หากคุณยังไม่ได้ตั้งค่าโดเมนสำหรับลิงก์แบบไดนามิก ให้คลิกปุ่ม เริ่มต้นใช้งาน และปฏิบัติตามคำแนะนำ
หากคุณมีโดเมน Dynamic Links อยู่แล้ว โปรดจดบันทึกไว้ คุณต้องระบุโดเมนลิงก์แบบไดนามิกเมื่อคุณสร้างลิงก์แบบไดนามิกโดยทางโปรแกรม
แนะนำ : จากเมนู "เพิ่มเติม" (⋮) ให้ระบุรูปแบบ 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);
คุณสามารถตั้งค่าพารามิเตอร์ Dynamic Link ด้วยวิธีการต่อไปนี้:
พารามิเตอร์ DynamicLink | |
---|---|
setLink | ลิงก์แอปของคุณจะเปิดขึ้น ระบุ URL ที่แอปของคุณสามารถจัดการได้ โดยทั่วไปคือเนื้อหาหรือเพย์โหลดของแอป ซึ่งจะเริ่มต้นตรรกะเฉพาะแอป (เช่น การให้เครดิตผู้ใช้ด้วยคูปองหรือการแสดงหน้าจอต้อนรับ) ลิงก์นี้ต้องเป็น URL ที่มีรูปแบบถูกต้อง มีการเข้ารหัส URL อย่างถูกต้อง ใช้ HTTP หรือ HTTPS อย่างใดอย่างหนึ่ง และไม่สามารถเป็นลิงก์แบบไดนามิกอื่นได้ |
setDomainUriPrefix | คำนำหน้า URL ลิงก์แบบไดนามิก ซึ่งพบได้ในคอนโซล Firebase โดเมนลิงก์แบบไดนามิกมีลักษณะดังนี้: https://example.com/link https://example.page.link |
Android พารามิเตอร์ | |
---|---|
setFallbackUrl | ลิงก์สำหรับเปิดเมื่อไม่ได้ติดตั้งแอป ระบุสิ่งนี้เพื่อทำสิ่งอื่นนอกเหนือจากการติดตั้งแอปของคุณจาก Play Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บบนอุปกรณ์เคลื่อนที่ หรือแสดงหน้าโปรโมตสำหรับแอปของคุณ |
setMinimumVersion | รหัสเวอร์ชันของเวอร์ชันขั้นต่ำของแอปของคุณที่สามารถเปิดลิงก์ได้ หากแอปที่ติดตั้งเป็นเวอร์ชันเก่า ระบบจะนำผู้ใช้ไปที่ Play Store เพื่ออัปเกรดแอป |
IosParameters | |
---|---|
ตั้งAppStoreId | รหัส App Store ของแอปของคุณ ใช้เพื่อส่งผู้ใช้ไปยัง App Store เมื่อไม่ได้ติดตั้งแอป |
setFallbackUrl | ลิงก์สำหรับเปิดเมื่อไม่ได้ติดตั้งแอป ระบุสิ่งนี้เพื่อทำสิ่งอื่นนอกเหนือจากการติดตั้งแอปของคุณจาก App Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บบนมือถือ หรือแสดงหน้าโปรโมชันสำหรับแอปของคุณ |
setCustomScheme | รูปแบบ URL ที่กำหนดเองของแอป หากกำหนดเป็นอย่างอื่นที่ไม่ใช่ ID Bundle ของแอป |
setIpadFallbackUrl | ลิงก์สำหรับเปิดบน iPad เมื่อไม่ได้ติดตั้งแอป ระบุสิ่งนี้เพื่อทำสิ่งอื่นนอกเหนือจากการติดตั้งแอปของคุณจาก App Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บ หรือแสดงหน้าโปรโมชันสำหรับแอปของคุณ |
setIpadBundleรหัส | รหัสบันเดิลของแอป iOS ที่จะใช้บน iPad เพื่อเปิดลิงก์ แอปต้องเชื่อมต่อกับโครงการของคุณจากหน้าภาพรวมของคอนโซล Firebase |
setMinimumVersion | หมายเลขเวอร์ชันของเวอร์ชันขั้นต่ำของแอปที่สามารถเปิดลิงก์ได้ แฟล็กนี้จะถูกส่งผ่านไปยังแอปของคุณเมื่อเปิดขึ้น และแอปของคุณต้องตัดสินใจว่าจะทำอย่างไรกับมัน |
พารามิเตอร์ข้อมูลการนำทาง | |
---|---|
setForcedRedirectEnabled | หากตั้งค่าเป็น '1' ให้ข้ามหน้าแสดงตัวอย่างแอปเมื่อเปิดลิงก์ไดนามิก และเปลี่ยนเส้นทางไปยังแอปหรือร้านค้าแทน หน้าแสดงตัวอย่างแอป (เปิดใช้งานตามค่าเริ่มต้น) สามารถส่งผู้ใช้ไปยังปลายทางที่เหมาะสมที่สุดได้อย่างน่าเชื่อถือมากขึ้นเมื่อพวกเขาเปิดลิงก์แบบไดนามิกในแอป อย่างไรก็ตาม หากคุณคาดหวังให้เปิดลิงก์ไดนามิกเฉพาะในแอพที่สามารถเปิดลิงก์ไดนามิกได้อย่างน่าเชื่อถือโดยไม่มีหน้านี้ คุณสามารถปิดใช้งานได้โดยใช้พารามิเตอร์นี้ พารามิเตอร์นี้จะส่งผลต่อลักษณะการทำงานของ Dynamic Link บน iOS เท่านั้น |
SocialMetaTagParameters | |
---|---|
ตั้งชื่อเรื่อง | ชื่อเรื่องที่จะใช้เมื่อมีการแชร์ลิงก์แบบไดนามิกในโพสต์โซเชียล |
setDescription | คำอธิบายที่จะใช้เมื่อมีการแชร์ลิงก์แบบไดนามิกในโพสต์โซเชียล |
setImageUrl | URL ของรูปภาพที่เกี่ยวข้องกับลิงก์นี้ รูปภาพควรมีขนาดอย่างน้อย 300x200 px และน้อยกว่า 300 KB |
GoogleAnalyticsParameters | |
---|---|
setSource setMedium ตั้งแคมเปญ setTerm กำหนดเนื้อหา | พารามิเตอร์การวิเคราะห์ของ 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 |