คุณสร้างลิงก์แบบไดนามิกแบบสั้นหรือแบบยาวได้โดยใช้ 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 Links ได้ หากตั้งค่าแอปให้รับ Dynamic Link ไว้แล้ว แสดงว่าคุณได้ทำตามขั้นตอนเหล่านี้เรียบร้อยแล้วและข้ามส่วนนี้ได้
ติดตั้งและเริ่มต้นใช้งาน Firebase SDK สําหรับ Flutter หากยังไม่ได้ทํา
จากไดเรกทอรีรูทของโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอิน Dynamic Links
flutter pub add firebase_dynamic_links
หากกำลังสร้างแอป Android ให้เปิดหน้าการตั้งค่าโปรเจ็กต์ของคอนโซล Firebase และตรวจสอบว่าคุณได้ระบุคีย์การรับรอง SHA-1 แล้ว หากคุณใช้ App Link ให้ระบุคีย์ SHA-256 ด้วย
เปิดส่วนDynamic Links ในคอนโซล Firebase
หากยังไม่ได้ตั้งค่าโดเมนสำหรับ Dynamic Link ให้คลิกปุ่มเริ่มต้นใช้งาน แล้วทำตามข้อความแจ้ง
หากคุณมีโดเมน Dynamic Link อยู่แล้ว ให้จดโดเมนนั้นไว้ คุณต้องระบุโดเมนของลิงก์แบบไดนามิกเมื่อสร้างลิงก์แบบไดนามิกแบบเป็นโปรแกรม
แนะนํา: จากเมนู "เพิ่มเติม" (⋮) ให้ระบุรูปแบบ 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);
โดยค่าเริ่มต้น ลิงก์แบบไดนามิกแบบสั้นจะสร้างขึ้นโดยมีส่วนต่อท้ายที่มีความยาวเพียงไม่กี่อักขระ แม้ว่าวิธีนี้จะทำให้ลิงก์สั้นลง แต่ก็อาจทำให้มีคนเดาลิงก์แบบสั้นที่ถูกต้องได้ บ่อยครั้ง การที่ผู้อื่นทำเช่นนั้นจะไม่ก่อให้เกิดอันตรายใดๆ เนื่องจากลิงก์ดังกล่าวนำไปสู่ข้อมูลสาธารณะ
อย่างไรก็ตาม หากลิงก์สั้นๆ นำไปสู่ข้อมูลที่เจาะจงผู้ใช้ คุณควรสร้างลิงก์ที่ยาวขึ้นโดยใช้ส่วนต่อท้าย 17 อักขระ ซึ่งทำให้ผู้อื่นคาดเดาลิงก์แบบไดนามิกที่ถูกต้องได้น้อยมาก โดยส่ง ShortDynamicLinkType.unguessable
ไปยังเมธอด buildShortLink()
ดังนี้
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
dynamicLinkParams,
shortLinkType: ShortDynamicLinkType.unguessable,
);
พารามิเตอร์ของลิงก์แบบไดนามิก
คุณสามารถใช้ Dynamic Link Builder API เพื่อสร้าง Dynamic Link ด้วยพารามิเตอร์ที่รองรับ โปรดดูข้อมูลอ้างอิง API
ตัวอย่างต่อไปนี้สร้าง Dynamic 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 | versionCode ของเวอร์ชันต่ำสุดของแอปที่เปิดลิงก์ได้ หากแอปที่ติดตั้งเป็นเวอร์ชันเก่า ระบบจะนำผู้ใช้ไปยัง Play Store เพื่ออัปเกรดแอป |
IosParameters | |
---|---|
setAppStoreId | รหัส App Store ของแอป ซึ่งใช้เพื่อส่งผู้ใช้ไปยัง App Store เมื่อไม่ได้ติดตั้งแอป |
setFallbackUrl | ลิงก์ที่จะเปิดขึ้นเมื่อไม่ได้ติดตั้งแอป ระบุค่านี้เพื่อดำเนินการอย่างอื่นนอกเหนือจากการติดตั้งแอปจาก App Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บบนอุปกรณ์เคลื่อนที่ หรือแสดงหน้าโปรโมตสําหรับแอป |
setCustomScheme | สกีม URL ที่กําหนดเองของแอป หากกําหนดไว้เป็นค่าอื่นที่ไม่ใช่รหัสกลุ่มของแอป |
setIpadFallbackUrl | ลิงก์ที่จะเปิดใน iPad เมื่อไม่ได้ติดตั้งแอป ระบุค่านี้เพื่อดำเนินการอย่างอื่นนอกเหนือจากการติดตั้งแอปจาก App Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บ หรือแสดงหน้าโปรโมตสําหรับแอป |
setIpadBundleId | รหัสกลุ่มของแอป iOS ที่จะใช้ใน iPad เพื่อเปิดลิงก์ แอปต้องเชื่อมต่อกับโปรเจ็กต์จากหน้าภาพรวมของคอนโซล Firebase |
setMinimumVersion | หมายเลขเวอร์ชันต่ำสุดของแอปที่เปิดลิงก์ได้ ระบบจะส่ง Flag นี้ไปยังแอปเมื่อเปิดแอป และแอปจะต้องตัดสินใจว่าจะทำอย่างไรกับ Flag นี้ |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | หากตั้งค่าเป็น "1" ระบบจะข้ามหน้าตัวอย่างแอปเมื่อเปิดลิงก์แบบไดนามิก และเปลี่ยนเส้นทางไปยังแอปหรือ Store แทน หน้าตัวอย่างแอป (เปิดใช้โดยค่าเริ่มต้น) สามารถส่งผู้ใช้ไปยังปลายทางที่เหมาะสมที่สุดได้เมื่อเปิดลิงก์แบบไดนามิกในแอป อย่างไรก็ตาม หากต้องการให้เปิดลิงก์แบบไดนามิกเฉพาะในแอปที่เปิดลิงก์แบบไดนามิกได้อย่างน่าเชื่อถือโดยไม่ต้องใช้หน้านี้ คุณสามารถปิดใช้หน้านี้ได้ด้วยพารามิเตอร์นี้ พารามิเตอร์นี้จะส่งผลต่อลักษณะการทำงานของ 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 |