คุณสร้าง Dynamic Links แบบสั้นหรือแบบยาวได้โดยใช้ 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
คุณต้องใส่ Firebase SDK ก่อนจึงจะสร้าง Dynamic Links ในแอป Android ได้ หากตั้งค่าแอปให้รับ Dynamic Links แสดงว่าคุณได้ทำตามขั้นตอนเหล่านี้เรียบร้อยแล้วและข้ามส่วนนี้ได้
เพิ่ม Firebase ลงในโปรเจ็กต์ Android หากยังไม่ได้ดำเนินการ
เมื่อลงทะเบียนแอป ให้ระบุคีย์การรับรอง SHA-1 หากคุณใช้ App Link โปรดระบุคีย์ SHA-256 ด้วย
-
ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติจะเป็น
<project>/<app-module>/build.gradle.kts
หรือ<project>/<app-module>/build.gradle
) ให้เพิ่มทรัพยากร Dependency สำหรับไลบรารี Dynamic Links สำหรับ Android เราขอแนะนำให้ใช้ Firebase Android BoM เพื่อควบคุมการกำหนดเวอร์ชันของไลบรารีเราขอแนะนําให้เปิดใช้ Google Analyticsในโปรเจ็กต์ Firebase และเพิ่ม Firebase SDK สําหรับ Google Analytics ลงในแอปเพื่อให้ได้รับประสบการณ์การใช้งาน Dynamic Links ที่ดีที่สุด
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.15.0")) // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links' implementation 'com.google.firebase:firebase-analytics' }
การใช้ Firebase Android BoM จะทำให้แอปใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้อยู่เสมอ
(วิธีอื่น) เพิ่มไลบรารี Firebase ที่ต้องพึ่งพาโดยไม่ต้องใช้ BoM
หากเลือกไม่ใช้ Firebase BoM คุณต้องระบุเวอร์ชันของไลบรารี Firebase แต่ละเวอร์ชันในบรรทัดของ Dependency
โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลายรายการในแอป เราขอแนะนําอย่างยิ่งให้ใช้ BoM เพื่อจัดการเวอร์ชันของไลบรารี ซึ่งจะช่วยให้มั่นใจได้ว่าทุกเวอร์ชันจะใช้งานร่วมกันได้
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links:22.1.0' implementation 'com.google.firebase:firebase-analytics:22.4.0' }
- เปิดส่วน Dynamic Links ในคอนโซล Firebase
-
หากยังไม่ได้ยอมรับข้อกำหนดในการให้บริการและตั้งค่าโดเมนสำหรับ Dynamic Links ให้ดำเนินการเมื่อได้รับข้อความแจ้ง
หากคุณมีโดเมน Dynamic Links อยู่แล้ว ให้จดโดเมนนั้นไว้ คุณต้องระบุโดเมน Dynamic Links เมื่อสร้าง Dynamic Links ด้วยโปรแกรม
- แนะนํา: ระบุรูปแบบ URL ที่อนุญาตให้ใช้ใน Deep Link และลิงก์สำรอง ซึ่งจะช่วยป้องกันไม่ให้บุคคลที่ไม่ได้รับอนุญาตสร้าง Dynamic Links ที่เปลี่ยนเส้นทางจากโดเมนของคุณไปยังเว็บไซต์ที่คุณไม่ได้ควบคุม โปรดดูหัวข้ออนุญาตรูปแบบ URL ที่เฉพาะเจาะจง
ใช้คอนโซล Firebase
หากต้องการสร้าง Dynamic Link รายการเดียวเพื่อวัตถุประสงค์ในการทดสอบ หรือเพื่อให้ทีมการตลาดสร้างลิงก์ที่ใช้ในสิ่งต่างๆ เช่น โพสต์โซเชียลมีเดีย ได้ง่ายขึ้น วิธีง่ายที่สุดคือไปที่คอนโซล Firebase แล้วสร้าง Dynamic Link รายการนั้นด้วยตนเองโดยทำตามแบบฟอร์มทีละขั้นตอน
สร้าง Dynamic Link จากพารามิเตอร์
หากต้องการสร้าง Dynamic Link ให้สร้างออบเจ็กต์ DynamicLink
ใหม่ด้วยตัวสร้าง โดยระบุพารามิเตอร์ Dynamic Link ด้วยเมธอดตัวสร้าง จากนั้นโทรไปที่ buildDynamicLink
หรือ buildShortDynamicLink
ตัวอย่างขั้นต่ำต่อไปนี้จะสร้าง Dynamic Link ยาวเพื่อไป https://www.example.com/
ซึ่งเปิดขึ้นพร้อมกับแอป Android ใน Android และแอป com.example.ios
ใน iOS
Kotlin
val dynamicLink = Firebase.dynamicLinks.dynamicLink { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Open links with this app on Android androidParameters { } // Open links with com.example.ios on iOS iosParameters("com.example.ios") { } } val dynamicLinkUri = dynamicLink.uri
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Open links with this app on Android .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build()) // Open links with com.example.ios on iOS .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build()) .buildDynamicLink(); Uri dynamicLinkUri = dynamicLink.getUri();
หากต้องการสร้าง Dynamic Link แบบสั้น ให้สร้าง DynamicLink
ในลักษณะเดียวกัน แล้วเรียกใช้ buildShortDynamicLink
การสร้างลิงก์แบบสั้นต้องมีการเรียกใช้เครือข่าย ดังนั้น buildShortDynamicLink
จึงแสดง Task
แทนที่จะแสดงลิงก์โดยตรง ซึ่งจะทำให้ลิงก์แบบสั้นพร้อมใช้งานเมื่อคําขอเสร็จสมบูรณ์ เช่น
Kotlin
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Set parameters // ... }.addOnSuccessListener { (shortLink, flowchartLink) -> // You'll need to import com.google.firebase.dynamiclinks.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowchartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Set parameters // ... .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });
โดยค่าเริ่มต้น Dynamic Links แบบสั้นจะสร้างขึ้นโดยมีนามสกุลลิงก์ 17 อักขระ ซึ่งทำให้แทบจะไม่มีใครเดา Dynamic Link ที่ถูกต้องได้ หากกรณีการใช้งานของคุณไม่มีปัญหาหากมีคนเดาลิงก์สั้นได้ คุณอาจต้องการสร้างส่วนต่อท้ายที่มีความยาวเพียงเท่าที่จำเป็นเพื่อให้ไม่ซ้ำกัน ซึ่งทำได้โดยการส่ง ShortDynamicLink.Suffix.SHORT
ไปยังเมธอด buildShortDynamicLink
ดังนี้
Kotlin
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
พารามิเตอร์ Dynamic Link รายการ
คุณสามารถใช้ Dynamic Link Builder API เพื่อสร้าง Dynamic Links โดยใช้พารามิเตอร์ที่รองรับ ดูรายละเอียดได้ที่ ข้อมูลอ้างอิง API
ตัวอย่างต่อไปนี้สร้าง Dynamic Link ที่มีชุดพารามิเตอร์ทั่วไปหลายรายการ
Kotlin
val dynamicLink = Firebase.dynamicLinks.dynamicLink { // or Firebase.dynamicLinks.shortLinkAsync link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" androidParameters("com.example.android") { minimumVersion = 125 } iosParameters("com.example.ios") { appStoreId = "123456789" minimumVersion = "1.0.1" } googleAnalyticsParameters { source = "orkut" medium = "social" campaign = "example-promo" } itunesConnectAnalyticsParameters { providerToken = "123456" campaignToken = "example-promo" } socialMetaTagParameters { title = "Example of a Dynamic Link" description = "This link works whether the app is installed or not!" } }
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") .setAndroidParameters( new DynamicLink.AndroidParameters.Builder("com.example.android") .setMinimumVersion(125) .build()) .setIosParameters( new DynamicLink.IosParameters.Builder("com.example.ios") .setAppStoreId("123456789") .setMinimumVersion("1.0.1") .build()) .setGoogleAnalyticsParameters( new DynamicLink.GoogleAnalyticsParameters.Builder() .setSource("orkut") .setMedium("social") .setCampaign("example-promo") .build()) .setItunesConnectAnalyticsParameters( new DynamicLink.ItunesConnectAnalyticsParameters.Builder() .setProviderToken("123456") .setCampaignToken("example-promo") .build()) .setSocialMetaTagParameters( new DynamicLink.SocialMetaTagParameters.Builder() .setTitle("Example of a Dynamic Link") .setDescription("This link works whether the app is installed or not!") .build()) .buildDynamicLink(); // Or buildShortDynamicLink()
คุณตั้งค่าพารามิเตอร์ Dynamic Link ได้ด้วยวิธีต่อไปนี้
พารามิเตอร์ DynamicLink | |
---|---|
setLink |
ลิงก์ที่แอปจะเปิด ระบุ URL ที่แอปของคุณจัดการได้ ซึ่งโดยปกติจะเป็นเนื้อหาหรือเพย์โหลดของแอป ซึ่งจะเริ่มต้นตรรกะเฉพาะแอป (เช่น การให้เครดิตผู้ใช้ด้วยคูปองหรือแสดงหน้าจอต้อนรับ) ลิงก์นี้ต้องเป็น URL ที่มีการจัดรูปแบบอย่างถูกต้อง เข้ารหัส URL อย่างเหมาะสม ใช้ HTTP หรือ HTTPS และไม่ใช่ Dynamic Link อื่น |
setDomainUriPrefix | คำนำหน้า URL Dynamic Link ซึ่งดูได้ในคอนโซล 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" ระบบจะข้ามหน้าตัวอย่างแอปเมื่อเปิด Dynamic Link และเปลี่ยนเส้นทางไปยังแอปหรือ Store แทน หน้าตัวอย่างแอป (เปิดใช้โดยค่าเริ่มต้น) สามารถส่งผู้ใช้ไปยังปลายทางที่เหมาะสมที่สุดได้เมื่อเปิด Dynamic Links ในแอป อย่างไรก็ตาม หากคุณต้องการให้เปิด Dynamic Link เฉพาะในแอปที่เปิด Dynamic Links ได้โดยไม่ใช้หน้านี้ คุณปิดใช้หน้านี้ได้โดยใช้พารามิเตอร์นี้ พารามิเตอร์นี้จะส่งผลต่อลักษณะการทํางานของ 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 |
ตัด Dynamic Link ที่ยาวให้สั้นลง
หากต้องการย่อ Dynamic Link ที่ยาว ให้ระบุ URL ของ Dynamic Link โดยใช้ setLongLink
แทนการตั้งค่าพารามิเตอร์ด้วยวิธีการสร้างอื่นๆ ดังนี้
Kotlin
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { longLink = Uri.parse( "https://example.page.link/?link=" + "https://www.example.com/&apn=com.example.android&ibn=com.example.ios", ) }.addOnSuccessListener { (shortLink, flowChartLink) -> // You'll need to import com.google.firebase.dynamiclinks.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowChartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLongLink(Uri.parse("https://example.page.link/?link=https://www.example.com/&apn=com.example.android&ibn=com.example.ios")) .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });