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

รับลิงก์แบบไดนามิกของ Firebase บน Android

หากต้องการรับลิงก์แบบไดนามิกของ Firebase ที่ คุณสร้างขึ้น คุณต้องรวม Dynamic Links SDK ไว้ในแอปของคุณและเรียกใช้เมธอด FirebaseDynamicLinks.getDynamicLink() เมื่อแอปของคุณโหลดเพื่อให้ส่งข้อมูลใน Dynamic Link

  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.3.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.1'
    }
    

    โคตรลิน + KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:26.3.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.1'
    }
    
  3. ใน คอนโซล Firebase เปิดส่วน ลิงก์แบบไดนามิก ยอมรับข้อกำหนดในการให้บริการหากคุณได้รับแจ้งให้ทำเช่นนั้น

เช่นเดียวกับ ลิงก์ ในรายละเอียดคุณต้องเพิ่มตัวกรองความตั้งใจใหม่ให้กับกิจกรรมที่จัดการลิงก์ในรายละเอียดสำหรับแอปของคุณ ตัวกรองความตั้งใจควรจับลิงก์ในรายละเอียดของโดเมนของคุณเนื่องจากลิงก์แบบไดนามิกจะเปลี่ยนเส้นทางไปยังโดเมนของคุณหากคุณติดตั้งแอป สิ่งนี้จำเป็นสำหรับแอปของคุณในการรับข้อมูล Dynamic Link หลังจากติดตั้ง / อัปเดตจาก Play Store แล้วแตะหนึ่งครั้งที่ปุ่มดำเนินการต่อ ใน AndroidManifest.xml :

<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data
        android:host="example.com"
        android:scheme="https"/>
</intent-filter>

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

หากต้องการรับลิงก์ในรายละเอียดให้เรียกใช้ getDynamicLink() :

Java

FirebaseDynamicLinks.getInstance()
        .getDynamicLink(getIntent())
        .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
            @Override
            public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                // Get deep link from result (may be null if no link is found)
                Uri deepLink = null;
                if (pendingDynamicLinkData != null) {
                    deepLink = pendingDynamicLinkData.getLink();
                }


                // Handle the deep link. For example, open the linked
                // content, or apply promotional credit to the user's
                // account.
                // ...

                // ...
            }
        })
        .addOnFailureListener(this, new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.w(TAG, "getDynamicLink:onFailure", e);
            }
        });

โคตรลิน + KTX

Firebase.dynamicLinks
        .getDynamicLink(intent)
        .addOnSuccessListener(this) { pendingDynamicLinkData ->
            // Get deep link from result (may be null if no link is found)
            var deepLink: Uri? = null
            if (pendingDynamicLinkData != null) {
                deepLink = pendingDynamicLinkData.link
            }

            // Handle the deep link. For example, open the linked
            // content, or apply promotional credit to the user's
            // account.
            // ...

            // ...
        }
        .addOnFailureListener(this) { e -> Log.w(TAG, "getDynamicLink:onFailure", e) }

คุณต้องเรียก getDynamicLink() ในทุกกิจกรรมที่อาจถูกเรียกใช้โดยลิงก์แม้ว่าลิงก์อาจพร้อมใช้งานจากความตั้งใจโดยใช้ getIntent().getData() การเรียก getDynamicLink() ดึงลิงก์และล้างข้อมูลนั้นเพื่อให้แอปของคุณประมวลผลเพียงครั้งเดียว

โดยปกติคุณจะเรียก getDynamicLink() ในกิจกรรมหลักตลอดจนกิจกรรมใด ๆ ที่เปิดตัวโดยตัวกรองความตั้งใจที่ตรงกับลิงก์

บันทึกการวิเคราะห์

สามารถติดตามเหตุการณ์ต่อไปนี้โดยอัตโนมัติใน Google Analytics และแสดงในคอนโซล Firebase

  • dynamic_link_app_open
  • dynamic_link_first_open
  • dynamic_link_app_update

ในการลงทะเบียนเหตุการณ์เหล่านี้คุณต้องกำหนดค่า Google Analytics ก่อนที่จะดึงลิงก์ในรายละเอียด ตรวจสอบเงื่อนไขดังต่อไปนี้:

  • เรียก FirebaseDynamicLinks.getDynamicLink() ในจุดเข้าแอปของคุณ:
    • กิจกรรมเปิด เช่น: action="android.intent.action.MAIN" , category="android.intent.category.LAUNCHER"
    • จุดเข้าทำกิจกรรม เช่น onStart() , onCreate()
    • กิจกรรม Deep Link
  • ตั้งค่าและใช้ Google Analytics:
    • รวมการพึ่งพา Google Analytics โดยปกติปลั๊กอิน google-services Gradle จะเพิ่มโดยอัตโนมัติ
    • รวมไฟล์กำหนดค่า google-services.json ไว้ในแอปของคุณ
    • เรียก FirebaseAnalytics.getInstance() ก่อนเรียก FirebaseDynamicLinks.getDynamicLink()

ใน Android 6.0 (API ระดับ 23) ขึ้นไปคุณสามารถตั้งค่าแอปให้จัดการลิงก์แบบไดนามิกได้โดยตรงเมื่อแอปของคุณได้รับการติดตั้งโดยใช้ ลิงก์แอป Android

ตรวจสอบว่าคุณได้เพิ่มลายนิ้วมือใบรับรอง SHA256 สำหรับแอปลงในโปรเจ็กต์ของคุณใน คอนโซล Firebase Dynamic Links จะจัดการการตั้งค่าการเชื่อมโยงเว็บไซต์ App Links สำหรับโดเมน Dynamic Links ของคุณ

เพิ่มตัวกรองความตั้งใจที่ได้รับการยืนยันโดยอัตโนมัติลงในกิจกรรมที่จะจัดการลิงก์แบบไดนามิกโดยตั้งค่าโฮสต์เป็นโดเมนลิงก์แบบไดนามิกของโปรเจ็กต์ดังที่ พบในคอนโซล Firebase ใน AndroidManifest.xml :

<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:host="example.com/link" android:scheme="http"/>
    <data android:host="example.com/link" android:scheme="https"/>
</intent-filter>

โปรดทราบว่า android:host ต้องตั้งค่าเป็นโดเมน Dynamic Links ของคุณไม่ใช่โดเมนของ Deep Link

ตัวกรองเจตนา autoVerify ทั้งหมดในไฟล์ Manifest ของคุณจะต้องลงทะเบียนเพื่อให้ App Links มีส่วนร่วม Firebase จะจัดการสิ่งนี้โดยอัตโนมัติสำหรับโดเมนลิงก์แบบไดนามิกของคุณ แต่คุณสามารถตรวจสอบได้โดยเปิดไฟล์ assetlinks.json โฮสต์บนโดเมนลิงก์ไดนามิกของคุณ:

https://YOUR_DOMAIN/.well-known/assetlinks.json
ควรรวมชื่อแพ็กเกจของแอป Firebase ทั้งหมด

ลิงก์แบบไดนามิกจะถูกส่งไปยังแอปของคุณโดยตรง คุณจะสามารถรับลิงก์ในรายละเอียดและข้อมูลไดนามิกลิงก์อื่น ๆ ได้โดยเรียกใช้ getDynamicLink() ในกิจกรรมที่คุณเพิ่มตัวกรองเจตนาของลิงก์แอป (ตามที่อธิบายไว้ในการ จัดการลิงก์ในรายละเอียด )