Google 致力于为黑人社区推动种族平等。查看具体举措
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

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

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

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

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

  1. เพิ่ม Firebase ในโปรเจ็กต์ Android ของคุณ หากยังไม่ได้ ทำ

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

  2. ใช้ 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'
    }
    
  3. ในคอนโซล Firebase เปิดส่วน ลิงก์แบบไดนามิก
  4. หากคุณยังไม่ได้ยอมรับข้อกำหนดในการให้บริการและตั้งค่าโดเมนสำหรับลิงก์ไดนามิกของคุณให้ดำเนินการดังกล่าวเมื่อได้รับแจ้ง

    หากคุณมีโดเมนลิงก์แบบไดนามิกอยู่แล้วให้จดโดเมนนั้นไว้ คุณต้องระบุโดเมนลิงก์แบบไดนามิกเมื่อคุณสร้างลิงก์แบบไดนามิกโดยใช้โปรแกรม

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

ใช้คอนโซล Firebase

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

ในการสร้าง 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 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 แบบยาวให้ระบุ 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
    // ...
}