คุณสามารถสร้างลิงก์แบบไดนามิกสั้นหรือยาวด้วย API ตัวสร้างลิงก์แบบไดนามิกของ Firebase API นี้ยอมรับ Dynamic Link แบบยาวหรือออบเจ็กต์ที่มีพารามิเตอร์ Dynamic Link และส่งคืน URL ดังตัวอย่างต่อไปนี้:
https://example.com/link/WXYZ https://example.page.link/WXYZ
ตั้งค่า Firebase และ Dynamic Links SDK
ก่อนที่คุณจะสร้างลิงก์แบบไดนามิกในแอป Android คุณต้องรวม Firebase SDK หากแอปของคุณได้รับการตั้งค่าให้รับลิงก์แบบไดนามิกแสดงว่าคุณได้ทำตามขั้นตอนเหล่านี้เรียบร้อยแล้วและคุณสามารถข้ามส่วนนี้ได้
เพิ่ม Firebase ในโปรเจ็กต์ Android ของคุณ หากยังไม่ได้ ทำ
เมื่อคุณลงทะเบียนแอปของคุณให้ระบุคีย์การลงนาม SHA-1 ของคุณ หากคุณใช้ลิงก์แอปให้ระบุคีย์ SHA-256 ของคุณด้วย
ใช้ Firebase Android BoM ประกาศการอ้างอิงสำหรับไลบรารี Dynamic Links Android ใน ไฟล์ Gradle ของ โมดูล ของคุณ (ระดับแอป) (โดยทั่วไปคือ
app/build.gradle
)เพื่อประสบการณ์ที่ดีที่สุดกับลิงก์แบบไดนามิกเราขอแนะนำให้ เปิดใช้ Google Analytics ในโครงการของคุณ นอกจากนี้ในการตั้งค่า Analytics คุณต้องเพิ่ม Firebase SDK สำหรับ Google Analytics ลงในแอปของคุณ
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:26.6.0') // Declare 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 แต่ละเวอร์ชันในบรรทัดการอ้างอิง
โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลาย ไลบรารีในแอปของคุณเราขอแนะนำอย่างยิ่งให้ใช้ BoM เพื่อจัดการเวอร์ชันไลบรารีซึ่งจะช่วยให้มั่นใจได้ว่าทุกเวอร์ชันจะเข้ากันได้
dependencies { // Declare 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:19.1.1' implementation 'com.google.firebase:firebase-analytics:18.0.2' }
โคตรลิน + KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:26.6.0') // Declare 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-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
เมื่อใช้ Firebase Android BoM แอปของคุณจะใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้เสมอ
(ทางเลือก) ประกาศการอ้างอิงไลบรารี Firebase โดยไม่ต้อง ใช้ BoM
หากคุณเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุไลบรารี Firebase แต่ละเวอร์ชันในบรรทัดการอ้างอิง
โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลาย ไลบรารีในแอปเราขอแนะนำให้ใช้ BoM เพื่อจัดการเวอร์ชันไลบรารีซึ่งจะช่วยให้มั่นใจได้ว่าทุกเวอร์ชันจะเข้ากันได้
dependencies { // Declare 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-ktx:19.1.1' implementation 'com.google.firebase:firebase-analytics-ktx:18.0.2' }
- ในคอนโซล Firebase เปิดส่วน ลิงก์แบบไดนามิก
หากคุณยังไม่ได้ยอมรับข้อกำหนดในการให้บริการและตั้งค่าโดเมนสำหรับลิงก์ไดนามิกของคุณให้ดำเนินการดังกล่าวเมื่อได้รับแจ้ง
หากคุณมีโดเมนลิงก์แบบไดนามิกอยู่แล้วให้จดโดเมนนั้นไว้ คุณต้องระบุโดเมนลิงก์แบบไดนามิกเมื่อคุณสร้างลิงก์แบบไดนามิกโดยใช้โปรแกรม
- แนะนำ : ระบุรูปแบบ URL ที่อนุญาตในลิงก์ในรายละเอียดและลิงก์สำรองของคุณ การทำเช่นนี้จะเป็นการป้องกันไม่ให้บุคคลที่ไม่ได้รับอนุญาตสร้างลิงก์แบบไดนามิกที่เปลี่ยนเส้นทางจากโดเมนของคุณไปยังไซต์ที่คุณไม่ได้ควบคุม ดู อนุญาตรูปแบบ URL ที่เฉพาะเจาะจง
ใช้คอนโซล Firebase
หากคุณต้องการสร้างลิงก์แบบไดนามิกเดียวไม่ว่าจะเพื่อวัตถุประสงค์ในการทดสอบหรือเพื่อให้ทีมการตลาดของคุณสร้างลิงก์ที่สามารถใช้ในสิ่งต่างๆเช่นโพสต์โซเชียลมีเดียได้อย่างง่ายดายวิธีที่ง่ายที่สุดคือไปที่ คอนโซล Firebase และสร้างขึ้นมาใหม่ ทำตามแบบฟอร์มทีละขั้นตอนด้วยตนเอง
สร้าง Dynamic Link จากพารามิเตอร์
ในการสร้าง Dynamic Link ให้สร้างออบเจ็กต์
DynamicLink
ใหม่ด้วย Builder โดยระบุพารามิเตอร์ Dynamic Link ด้วยเมธอด Builder จากนั้นเรียกbuildDynamicLink
หรือbuildShortDynamicLink
ตัวอย่างขั้นต่ำต่อไปนี้จะสร้าง Dynamic Link แบบยาวไปยัง
https://www.example.com/
ที่เปิดขึ้นพร้อมกับแอป Android ของคุณบน Android และแอปcom.example.ios
บน iOS: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();
โคตรลิน + KTX
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
ในการสร้าง Dynamic Link แบบสั้นให้สร้าง
DynamicLink
ในลักษณะเดียวกันจากนั้นเรียกbuildShortDynamicLink
การสร้างลิงก์แบบสั้นต้องใช้การเรียกเครือข่ายดังนั้นแทนที่จะส่งคืนลิงก์โดยตรงbuildShortDynamicLink
จะส่งคืนTask
ซึ่งทำให้ลิงก์แบบสั้นพร้อมใช้งานเมื่อคำขอเสร็จสมบูรณ์ ตัวอย่างเช่น: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 // ... } } });
โคตรลิน + KTX
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.ktx.component1 and // com.google.firebase.dynamiclinks.ktx.component2 // Short link created processShortLink(shortLink, flowchartLink) }.addOnFailureListener { // Error // ... }
ตามค่าเริ่มต้น Dynamic Links แบบสั้นจะถูกสร้างขึ้นโดยมีส่วนต่อท้ายลิงก์ 17 อักขระซึ่งทำให้ไม่น่าเป็นไปได้อย่างยิ่งที่จะมีคนเดา Dynamic Link ที่ถูกต้องได้ หากในกรณีการใช้งานของคุณไม่มีอันตรายใด ๆ ในบางคนที่คาดเดาลิงก์สั้น ๆ ได้สำเร็จคุณอาจต้องการสร้างคำต่อท้ายที่ยาวเท่าที่จำเป็นเท่านั้นเพื่อให้ไม่ซ้ำกันซึ่งคุณสามารถทำได้โดยส่ง
ShortDynamicLink.Suffix.SHORT
ไปยังเมธอดbuildShortDynamicLink
:Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
โคตรลิน + KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
พารามิเตอร์ Dynamic Link
คุณสามารถใช้ Dynamic Link Builder API เพื่อสร้างลิงก์แบบไดนามิกโดยใช้พารามิเตอร์ที่รองรับ ดูการ อ้างอิง API สำหรับรายละเอียด
ตัวอย่างต่อไปนี้สร้าง Dynamic Link พร้อมชุดพารามิเตอร์ทั่วไปหลายตัว:
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()
โคตรลิน + KTX
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!" } }
คุณสามารถตั้งค่าพารามิเตอร์ Dynamic Link ด้วยวิธีการต่อไปนี้:
พารามิเตอร์ DynamicLink setLink ลิงก์แอปของคุณจะเปิดขึ้น ระบุ URL ที่แอปของคุณสามารถจัดการได้โดยทั่วไปจะเป็นเนื้อหาหรือเพย์โหลดของแอปซึ่งเริ่มต้นตรรกะเฉพาะแอป (เช่นการให้เครดิตผู้ใช้ด้วยคูปองหรือการแสดงหน้าจอต้อนรับ) ลิงก์นี้ต้องเป็น URL ที่มีรูปแบบดีเข้ารหัส URL อย่างถูกต้องใช้ HTTP หรือ HTTPS และไม่สามารถเป็นลิงก์แบบไดนามิกอื่นได้
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 ลิงก์สำหรับเปิดบน iPads เมื่อไม่ได้ติดตั้งแอป ระบุสิ่งนี้เพื่อทำอย่างอื่นนอกเหนือจากการติดตั้งแอปของคุณจาก App Store เมื่อไม่ได้ติดตั้งแอปเช่นเปิดเนื้อหาเวอร์ชันเว็บหรือแสดงหน้าส่งเสริมการขายสำหรับแอปของคุณ setIpadBundleId รหัสชุดของแอป iOS ที่จะใช้บน iPads เพื่อเปิดลิงก์ แอปต้องเชื่อมต่อกับโปรเจ็กต์ของคุณจากหน้าภาพรวมของคอนโซล Firebase setMinimumVersion หมายเลข เวอร์ชันของเวอร์ชันขั้นต่ำของแอปของคุณที่สามารถเปิดลิงก์ได้ แฟล็กนี้จะส่งผ่านไปยังแอปของคุณเมื่อเปิดขึ้นและแอปของคุณจะต้องตัดสินใจว่าจะทำอย่างไร NavigationInfoParameters setForcedRedirectEnabled หากตั้งค่าเป็น "1" ให้ข้ามหน้าตัวอย่างแอปเมื่อเปิดลิงก์ไดนามิกแล้วเปลี่ยนเส้นทางไปที่แอปหรือร้านค้าแทน หน้าตัวอย่างแอป (เปิดใช้งานโดยค่าเริ่มต้น) สามารถส่งผู้ใช้ไปยังปลายทางที่เหมาะสมที่สุดได้อย่างน่าเชื่อถือมากขึ้นเมื่อเปิดลิงก์แบบไดนามิกในแอป อย่างไรก็ตามหากคุณคาดว่าจะเปิดลิงก์ไดนามิกเฉพาะในแอปที่สามารถเปิดลิงก์ไดนามิกได้อย่างน่าเชื่อถือหากไม่มีหน้านี้คุณสามารถปิดใช้งานได้โดยใช้พารามิเตอร์นี้ หมายเหตุ: ตอนนี้หน้าตัวอย่างแอปจะแสดงเฉพาะบน iOS แต่ในที่สุดก็อาจจะแสดงบน Android พารามิเตอร์นี้จะส่งผลต่อพฤติกรรมของ Dynamic Link บนทั้งสองแพลตฟอร์ม SocialMetaTagParameters setTitle ชื่อที่จะใช้เมื่อแชร์ลิงก์ไดนามิกในโพสต์โซเชียล setDescription คำอธิบายที่จะใช้เมื่อแชร์ลิงก์ไดนามิกในโพสต์โซเชียล 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
แทนการตั้งค่าพารามิเตอร์ด้วยเมธอดตัวสร้างอื่น ๆ :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 // ... } } });
โคตรลิน + KTX
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.ktx.component1 and // com.google.firebase.dynamiclinks.ktx.component2 // Short link created processShortLink(shortLink, flowChartLink) }.addOnFailureListener { // Error // ... }
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2021-01-26 UTC.