หากต้องการรับ Firebase Dynamic Links ที่
ที่คุณสร้างขึ้น คุณต้องรวม Dynamic Links SDK ในแอป และเรียกใช้
FirebaseDynamicLinks.getDynamicLink()
เมื่อแอปของคุณโหลดถึง
รับข้อมูลที่ส่งใน Dynamic Link
ตั้งค่า Firebase และ Dynamic Links SDK
หากคุณยังไม่ได้ดำเนินการ เพิ่ม Firebase ลงในโปรเจ็กต์ Android
เมื่อคุณลงทะเบียนแอป ให้ระบุคีย์ SHA-1 Signing หากคุณใช้ ลิงก์แอป ให้ระบุคีย์ SHA-256 ด้วย
-
ในไฟล์ Gradle ของโมดูล (ระดับแอป) (ปกติ
<project>/<app-module>/build.gradle.kts
หรือ<project>/<app-module>/build.gradle
) เพิ่มทรัพยากร Dependency สำหรับไลบรารี Dynamic Links สำหรับ Android เราขอแนะนำให้ใช้ Firebase Android BoM เพื่อควบคุมการกำหนดเวอร์ชันไลบรารีเราขอแนะนำเพื่อประสบการณ์การใช้งาน Dynamic Links ที่ดีที่สุด กำลังเปิดใช้ Google Analytics ในโปรเจ็กต์ Firebase และเพิ่ม Firebase SDK สำหรับ Google Analytics ลงในแอป
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.2.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 เวอร์ชันที่เข้ากันได้เสมอ
(ทางเลือก) เพิ่มทรัพยากร Dependency ของไลบรารี 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.1.0' }
- ในคอนโซล Firebase ให้เปิด Dynamic Links ยอมรับข้อกำหนดในการให้บริการ หากคุณได้รับแจ้งให้ทำเช่นนั้น
เพิ่มตัวกรอง Intent สำหรับ Deep Link
เช่นเดียวกับ
Deep Link ธรรมดาคุณต้องเพิ่มตัวกรอง Intent ใหม่ลงในกิจกรรมที่จัดการ
ลิงก์ในรายละเอียดสำหรับแอปของคุณ ตัวกรอง Intent ควรตรวจจับลิงก์ในรายละเอียดของโดเมนของคุณ เนื่องจาก
Dynamic Link จะเปลี่ยนเส้นทางไปยังโดเมนของคุณหากติดตั้งแอปไว้ คุณต้องดำเนินการนี้เพื่อให้แอปดำเนินการต่อไปนี้ได้
รับข้อมูล 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>
เมื่อผู้ใช้เปิด Dynamic Link ด้วย Deep Link ไปยังสคีมและโฮสต์ที่คุณระบุ แอปจะ เริ่มกิจกรรมด้วยตัวกรอง Intent นี้เพื่อจัดการลิงก์
จัดการ Deep Link
ในการรับ Deep Link ให้เรียกเมธอด getDynamicLink()
Kotlin+KTX
Firebase.dynamicLinks .getDynamicLink(intent) .addOnSuccessListener(this) { pendingDynamicLinkData: 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) }
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); } });
คุณต้องโทรหา getDynamicLink()
ในทุกกิจกรรมที่อาจ
ที่เปิดโดยลิงก์ แม้ว่าลิงก์นั้นอาจมาจาก Intent
ด้วย getIntent().getData()
กำลังโทรหา getDynamicLink()
ดึงลิงก์และล้างข้อมูลนั้นเพื่อให้มีการประมวลผลเพียงครั้งเดียวโดย
แอป
ปกติแล้วคุณจะโทรหา getDynamicLink()
ในกิจกรรมหลักด้วย
เป็นกิจกรรมใดก็ตามที่ตัวกรอง Intent เปิดขึ้นซึ่งตรงกับลิงก์นั้น
บันทึกการวิเคราะห์
คุณสามารถติดตามกิจกรรมต่อไปนี้โดยอัตโนมัติใน Google Analytics และแสดงใน คอนโซล Firebase
dynamic_link_app_open
dynamic_link_first_open
dynamic_link_app_update
หากต้องการลงทะเบียนเหตุการณ์เหล่านี้ คุณต้องกําหนดค่า Google Analytics ก่อน ดึง Deep Link ตรวจสอบว่าเป็นไปตามเงื่อนไขต่อไปนี้
- โทรหา
FirebaseDynamicLinks.getDynamicLink()
ในจุดแรกเข้าของแอป: - กิจกรรมของ Launcher e.g.:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
- จุดแรกเข้าของกิจกรรม e.g.:
onStart()
,onCreate()
- กิจกรรม Deep Link
- ตั้งค่าและใช้ Google Analytics:
- รวมทรัพยากร Dependency Google Analytics โดยปกติจะมีการเพิ่ม URL นี้โดยอัตโนมัติโดย
ปลั๊กอิน Gradle ภาษา
google-services
- ใส่แท็ก
ไฟล์การกำหนดค่า
google-services.json
ในแอปของคุณ - โปรดโทรหา
FirebaseAnalytics.getInstance()
ก่อนโทรFirebaseDynamicLinks.getDynamicLink()
การจัดการ Dynamic Links โดยใช้ App Link
ใน Android 6.0 (API ระดับ 23) ขึ้นไป คุณจะตั้งค่าให้แอปรองรับ Dynamic Links ได้ โดยตรงเมื่อติดตั้งแอปของคุณไว้แล้วโดยใช้ Android App Link
ตรวจสอบว่าคุณได้เพิ่มลายนิ้วมือของใบรับรอง SHA256 สำหรับแอปลงในโปรเจ็กต์ใน คอนโซล Firebase Dynamic Links จะจัดการตั้งค่าการเชื่อมโยงเว็บไซต์ของลิงก์แอปให้กับ โดเมน Dynamic Links ของคุณ
เพิ่มตัวกรอง Intent ที่ยืนยันอัตโนมัติลงในกิจกรรมที่จะจัดการ Dynamic Link โดยตั้งค่า
ไปยังโดเมน 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
ต้องบันทึกตัวกรอง Intent autoVerify
ทั้งหมดในไฟล์ Manifest สำหรับแอป
ลิงก์สำหรับการมีส่วนร่วม Firebase จะจัดการเรื่องนี้โดยอัตโนมัติสำหรับโดเมน Dynamic Links ของคุณ แต่คุณตรวจสอบได้
โดยการเปิดไฟล์ assetlinks.json
ที่โฮสต์ในโดเมน Dynamic Links ของคุณ:
https://YOUR_DOMAIN/.well-known/assetlinks.json
ระบบจะส่ง Dynamic Links ไปยังแอปของคุณโดยตรง คุณจะสามารถรับ Deep Link และอื่นๆ
ข้อมูลของ Dynamic Link โดยการเรียกใช้ getDynamicLink()
ในกิจกรรมที่คุณเพิ่ม App Link
Intent ของตัวกรองไปยัง (ตามที่อธิบายไว้ใน
จัดการ Deep Link)
หมายเหตุ: เนื่องจากการเรียกใช้ผ่าน App Link จะนำผู้ใช้ไปยังแอปโดยตรง ลิงก์แบบไดนามิกไม่สามารถใช้เวอร์ชันขั้นต่ำที่กำหนด ดังนั้นเมื่อเปิดแอปขึ้นมา ต้องเปรียบเทียบเวอร์ชันขั้นต่ำของลิงก์แบบไดนามิก ( getminimumappversion) เทียบกับ PackageInfo.versionCode และเปลี่ยนเส้นทางผู้ใช้เพื่ออัปเกรดแอปหากจำเป็นโดยใช้ getUpdateAppIntent