Google is committed to advancing racial equity for Black communities. See how.
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

สร้างลิงค์แบบไดนามิกบน Android

คุณสามารถสร้างลิงค์แบบสั้นหรือยาวได้ด้วย API ของ Firebase Dynamic Links Builder API นี้ยอมรับ Dynamic Link ที่ยาวหรือวัตถุที่มีพารามิเตอร์ Dynamic Link และส่งคืน URL ตามตัวอย่างต่อไปนี้:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

ก่อนที่คุณจะสามารถสร้าง Dynamic Links ในแอพ Android ของคุณคุณจะต้องรวม Firebase SDK หากแอปของคุณได้รับการตั้งค่าให้รับลิงค์แบบไดนามิกคุณได้ทำตามขั้นตอนเหล่านี้แล้วและคุณสามารถข้ามส่วนนี้ได้

  1. หากคุณยังไม่ได้ เพิ่ม Firebase ให้กับโครงการ Android ของคุณ

    เมื่อคุณลงทะเบียนแอปให้ระบุรหัสลงนาม SHA-1 ของคุณ หากคุณใช้แอพลิงค์ให้ระบุคีย์ SHA-256 ของคุณด้วย

  2. ในโครงการระดับ build.gradle ไฟล์ให้แน่ใจว่าจะรวมถึงพื้นที่เก็บข้อมูล Maven ของ Google ในทั้งสองของคุณ buildscript และ allprojects ส่วน
  3. เพิ่มการพึ่งพาสำหรับไลบรารี Dynamic Links Android ลงในไฟล์โมดูล Gradle (ระดับแอป) ของคุณ (มักจะเป็น app/build.gradle )

    เพื่อประสบการณ์ที่ดีที่สุดกับ Dynamic Links เราขอแนะนำให้ เปิดใช้งาน Google Analytics ในโครงการของคุณ นอกจากนี้ในการตั้งค่า Analytics คุณต้องเพิ่ม Firebase SDK สำหรับ Analytics ลงในแอปของคุณ

    ชวา

    implementation 'com.google.firebase:firebase-dynamic-links:19.1.0'
    implementation 'com.google.firebase:firebase-analytics:17.4.4'

    Kotlin + KTX

    implementation 'com.google.firebase:firebase-dynamic-links-ktx:19.1.0'
    implementation 'com.google.firebase:firebase-analytics-ktx:17.4.4'
  4. ในคอนโซล Firebase ให้เปิดส่วน ลิงก์แบบไดนามิก
  5. หากคุณยังไม่ได้ยอมรับข้อกำหนดในการให้บริการและตั้งค่าโดเมนสำหรับ Dynamic Links ของคุณให้ทำเช่นนั้นเมื่อได้รับแจ้ง

    หากคุณมีโดเมน Dynamic Links อยู่ให้จดไว้ คุณต้องระบุโดเมน Dynamic Links เมื่อคุณสร้าง Dynamic Links โดยทางโปรแกรม

  6. แนะนำ : ระบุรูปแบบ URL ที่อนุญาตในลิงก์เชิงลึกและลิงก์สำรอง การทำเช่นนี้เป็นการป้องกันบุคคลที่ไม่ได้รับอนุญาตจากการสร้างลิงก์แบบไดนามิกที่เปลี่ยนเส้นทางจากโดเมนของคุณไปยังเว็บไซต์ที่คุณไม่ได้ควบคุม ดู รูปแบบ URL ที่อนุญาต พิเศษ

ใช้คอนโซล Firebase

หากคุณต้องการสร้าง Dynamic Link เดียวไม่ว่าจะเพื่อการทดสอบหรือเพื่อทีมการตลาดของคุณเพื่อสร้างลิงค์ที่สามารถใช้งานได้ในบางสิ่งเช่นโพสต์โซเชียลมีเดียวิธีที่ง่ายที่สุดในการเยี่ยมชม คอนโซล Firebase และสร้าง ทำตามแบบฟอร์มทีละขั้นตอนด้วยตนเอง

ในการสร้าง Dynamic Link ให้สร้างวัตถุ DynamicLink ใหม่ด้วยเครื่องมือสร้างโดยระบุพารามิเตอร์ Dynamic Link ด้วยเมธอด Builder จากนั้นเรียก buildDynamicLink หรือ buildShortDynamicLink

ตัวอย่างขั้นต่ำต่อไปนี้สร้างลิงก์แบบไดนามิกที่ยาวไปยัง https://www.example.com/ ที่เปิดขึ้นพร้อมกับแอพ Android ของคุณใน Android และแอป com.example.ios บน iOS:

ชวา

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();

Kotlin + 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 ซึ่งทำให้ลิงก์แบบสั้นพร้อมใช้งานเมื่อการร้องขอเสร็จสิ้น ตัวอย่างเช่น:

ชวา

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
                    // ...
                }
            }
        });

Kotlin + KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync {
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    // Set parameters
    // ...
}.addOnSuccessListener { result ->
    // Short link created
    val shortLink = result.shortLink
    val flowchartLink = result.previewLink
}.addOnFailureListener {
    // Error
    // ...
}

โดยค่าเริ่มต้นลิงค์แบบไดนามิกสั้น ๆ จะถูกสร้างขึ้นพร้อมกับส่วนต่อท้ายลิงก์ 17 อักขระที่ทำให้ไม่น่าเป็นไปได้อย่างมากที่ใครบางคนสามารถเดาไดนามิคลิงค์ที่ถูกต้องได้ หากกรณีการใช้งานของคุณมีอันตรายในคนที่ประสบความสำเร็จในการคาดเดาลิงก์สั้น ๆ ไม่มีคุณอาจต้องการสร้างส่วนต่อท้ายที่มีเฉพาะตราบใดที่จำเป็นที่จะต้องไม่ซ้ำกันซึ่งคุณสามารถทำได้โดยผ่าน ShortDynamicLink.Suffix.SHORT ไป buildShortDynamicLink วิธี :

ชวา

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        // ...
        .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT);
        // ...

Kotlin + KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) {
    // Set parameters
    // ...
}

คุณสามารถใช้ Dynamic Link Builder API เพื่อสร้าง Dynamic Links กับพารามิเตอร์ที่สนับสนุน ดูการ อ้างอิง API สำหรับรายละเอียด

ตัวอย่างต่อไปนี้สร้าง Dynamic Link พร้อมชุดพารามิเตอร์หลายชุด

ชวา

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()

Kotlin + 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 อย่างถูกต้องใช้ HTTP หรือ HTTPS และไม่สามารถเป็นลิงค์แบบไดนามิกอื่นได้

setDomainUriPrefix คำนำหน้า Dynamic Link URL ของคุณซึ่งคุณสามารถหาได้ในคอนโซล Firebase โดเมน Dynamic Link ดูเหมือนตัวอย่างต่อไปนี้:
https://example.com/link
https://example.page.link
AndroidParameters
setFallbackUrl ลิงก์สำหรับเปิดเมื่อไม่ได้ติดตั้งแอพ ระบุสิ่งนี้เพื่อทำสิ่งอื่นนอกเหนือจากติดตั้งแอพของคุณจาก Play Store เมื่อไม่ได้ติดตั้งแอพเช่นเปิดเนื้อหาเว็บเวอร์ชันมือถือหรือแสดงหน้าโปรโมชั่นสำหรับแอพของคุณ
setMinimumVersion versionCode ของเวอร์ชันต่ำสุดของแอพของคุณที่สามารถเปิดลิงค์ได้ หากแอพที่ติดตั้งเป็นเวอร์ชั่นเก่าผู้ใช้จะถูกนำไปที่ Play Store เพื่ออัปเกรดแอป
IosParameters
setAppStoreId ID App Store ของแอปของคุณใช้เพื่อส่งผู้ใช้ไปยัง App Store เมื่อไม่ได้ติดตั้งแอพ
setFallbackUrl ลิงก์สำหรับเปิดเมื่อไม่ได้ติดตั้งแอพ ระบุสิ่งนี้เพื่อทำสิ่งอื่นนอกเหนือจากติดตั้งแอพของคุณจาก App Store เมื่อไม่ได้ติดตั้งแอพเช่นเปิดเนื้อหาเว็บเวอร์ชันมือถือหรือแสดงหน้าโปรโมชั่นสำหรับแอพของคุณ
setCustomScheme รูปแบบ URL ที่กำหนดเองของแอปของคุณหากกำหนดให้เป็นอย่างอื่นที่ไม่ใช่รหัสบันเดิลของแอปของคุณ
setIpadFallbackUrl ลิงก์สำหรับเปิดบนไอแพดเมื่อไม่ได้ติดตั้งแอพ ระบุสิ่งนี้เพื่อทำสิ่งอื่นนอกเหนือจากติดตั้งแอพของคุณจาก App Store เมื่อไม่ได้ติดตั้งแอพเช่นเปิดเนื้อหาเว็บเวอร์ชั่นหรือแสดงหน้าโปรโมชั่นสำหรับแอพของคุณ
setIpadBundleId บันเดิล ID ของแอป iOS ที่ใช้บนไอแพดเพื่อเปิดลิงก์ แอปต้องเชื่อมต่อกับโครงการของคุณจากหน้าภาพรวมของคอนโซล Firebase
setMinimumVersion หมายเลข เวอร์ชันของแอปขั้นต่ำที่สามารถเปิดลิงก์ได้ การตั้งค่าสถานะนี้จะถูกส่งผ่านไปยังแอปของคุณเมื่อมีการเปิดและแอปของคุณต้องตัดสินใจว่าจะทำอย่างไรกับมัน
NavigationInfoParameters
setForcedRedirectEnabled หากตั้งค่าเป็น '1' ให้ข้ามหน้าตัวอย่างแอพเมื่อเปิด Dynamic Link และเปลี่ยนเส้นทางไปยังแอพหรือร้านค้าแทน หน้าตัวอย่างแอพ (เปิดใช้งานโดยค่าเริ่มต้น) สามารถส่งผู้ใช้ไปยังปลายทางที่เหมาะสมที่สุดได้อย่างน่าเชื่อถือมากขึ้นเมื่อพวกเขาเปิดลิงก์แบบไดนามิกในแอพ อย่างไรก็ตามหากคุณคาดว่าจะเปิด Dynamic Link เฉพาะในแอพที่สามารถเปิด Dynamic Links ได้อย่างน่าเชื่อถือหากไม่มีหน้านี้คุณสามารถปิดการใช้งานได้ด้วยพารามิเตอร์นี้ หมายเหตุ: หน้าตัวอย่างแอปจะแสดงเฉพาะใน iOS ในขณะนี้ แต่ในที่สุดอาจปรากฏบน Android พารามิเตอร์นี้จะส่งผลต่อการทำงานของ Dynamic Link บนทั้งสองแพลตฟอร์ม
SocialMetaTagParameters
setTitle ชื่อที่จะใช้เมื่อแชร์ลิงก์แบบไดนามิกในโพสต์โซเชียล
setDescription คำอธิบายที่จะใช้เมื่อแชร์ลิงก์แบบไดนามิกในโพสต์โซเชียล
setImageUrl URL ไปยังรูปภาพที่เกี่ยวข้องกับลิงค์นี้ รูปภาพควรมีขนาดอย่างน้อย 300x200 px และน้อยกว่า 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 แบบยาวให้ระบุ URL ของ Dynamic Link โดยใช้ setLongLink แทนการตั้งค่าพารามิเตอร์ด้วยวิธีการสร้างอื่น ๆ :

ชวา

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
                    // ...
                }
            }
        });

Kotlin + 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 { result ->
    // Short link created
    val shortLink = result.shortLink
    val flowchartLink = result.previewLink
}.addOnFailureListener {
    // Error
    // ...
}