ในการรับ Firebase Dynamic Links ที่ คุณสร้าง คุณต้องรวม Dynamic Links SDK ในแอปของคุณและเรียกเมธอด FirebaseDynamicLinks.getDynamicLink()
เมื่อแอปของคุณโหลดเพื่อรับข้อมูลที่ส่งผ่านในลิงก์ไดนามิก
ตั้งค่า Firebase และ Dynamic Links SDK
หากคุณยังไม่ได้ดำเนินการ ให้ เพิ่ม Firebase ในโครงการ Android ของคุณ
เมื่อคุณลงทะเบียนแอป ให้ระบุคีย์การลงนาม SHA-1 ของคุณ หากคุณใช้ App Links ให้ระบุคีย์ SHA-256 ของคุณด้วย
ใน ไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ
<project>/<app-module>/build.gradle
) ให้เพิ่มการอ้างอิงสำหรับไลบรารี Dynamic Links Android ขอแนะนำให้ใช้ Firebase Android BoM เพื่อควบคุมการกำหนดเวอร์ชันของไลบรารีเพื่อประสบการณ์ที่ดีที่สุดกับลิงก์แบบไดนามิก เราขอแนะนำให้ เปิดใช้ Google Analytics ในโครงการ Firebase และเพิ่ม Firebase SDK สำหรับ Google Analytics ลงในแอปของคุณ
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.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-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
เมื่อใช้ Firebase Android BoM แอปของคุณจะใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้เสมอ
(ทางเลือก) เพิ่มการอ้างอิงไลบรารี Firebase โดยไม่ ใช้ BoM
หากคุณเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุแต่ละเวอร์ชันของไลบรารี Firebase ในบรรทัดอ้างอิง
โปรดทราบว่าหากคุณใช้ไลบรารี 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-ktx:21.1.0' implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.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 เวอร์ชันที่เข้ากันได้เสมอ
(ทางเลือก) เพิ่มการอ้างอิงไลบรารี Firebase โดยไม่ ใช้ BoM
หากคุณเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุแต่ละเวอร์ชันของไลบรารี Firebase ในบรรทัดอ้างอิง
โปรดทราบว่าหากคุณใช้ไลบรารี 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:21.1.0' implementation 'com.google.firebase:firebase-analytics:21.2.0' }
- ใน คอนโซล Firebase ให้เปิดส่วน ลิงก์แบบไดนามิก ยอมรับข้อกำหนดในการให้บริการ หากคุณได้รับแจ้งให้ดำเนินการดังกล่าว
เพิ่มตัวกรองความตั้งใจสำหรับลิงก์ในรายละเอียด
เช่นเดียวกับ ลิงก์ในรายละเอียดธรรมดา คุณต้องเพิ่มตัวกรองเจตนาใหม่ให้กับกิจกรรมที่จัดการลิงก์ในรายละเอียดสำหรับแอปของคุณ ตัวกรองเจตนาควรตรวจจับลิงก์ในรายละเอียดในโดเมนของคุณ เนื่องจากลิงก์แบบไดนามิกจะเปลี่ยนเส้นทางไปยังโดเมนของคุณหากมีการติดตั้งแอป สิ่งนี้จำเป็นสำหรับแอปของคุณในการรับข้อมูลลิงก์แบบไดนามิกหลังจากติดตั้ง/อัปเดตจาก 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>
เมื่อผู้ใช้เปิดลิงก์แบบไดนามิกที่มีลิงก์ในรายละเอียดไปยังโครงร่างและโฮสต์ที่คุณระบุ แอปของคุณจะเริ่มกิจกรรมด้วยตัวกรองความตั้งใจนี้เพื่อจัดการลิงก์
จัดการลิงก์ในรายละเอียด
หากต้องการรับ 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()
ในทุกกิจกรรมที่อาจเปิดใช้งานโดยลิงก์ แม้ว่าลิงก์นั้นอาจพร้อมใช้งานจากความตั้งใจโดยใช้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()
- กิจกรรมเชื่อมโยงลึก
- ตั้งค่าและใช้ Google Analytics:
- รวมการพึ่งพา Google Analytics ซึ่งโดยปกติจะถูกเพิ่มโดยอัตโนมัติโดยปลั๊กอิน Gradle ของ
google-services
- รวมไฟล์กำหนดค่า
google-services.json
ไว้ในแอปของคุณ - เรียก
FirebaseAnalytics.getInstance()
ก่อนเรียกFirebaseDynamicLinks.getDynamicLink()
การจัดการลิงก์แบบไดนามิกโดยใช้ลิงก์แอป
บน Android 6.0 (API ระดับ 23) และสูงกว่า คุณสามารถตั้งค่าแอปให้จัดการลิงก์แบบไดนามิกได้โดยตรง เมื่อติดตั้งแอปของคุณแล้วโดยใช้ Android App Links
ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มลายนิ้วมือของใบรับรอง 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
ต้องตั้งค่าเป็นโดเมนลิงก์แบบไดนามิก ไม่ใช่โดเมนของลิงก์ในรายละเอียดของคุณต้องลงทะเบียนตัวกรองเจตนา
autoVerify
ทั้งหมดในไฟล์ Manifest เพื่อให้ App Links มีส่วนร่วม Firebase จัดการสิ่งนี้โดยอัตโนมัติสำหรับโดเมน Dynamic Links ของคุณ แต่คุณสามารถตรวจสอบได้โดยเปิดไฟล์assetlinks.json
ที่โฮสต์บนโดเมน Dynamic Links ของคุณ:https://YOUR_DOMAIN/.well-known/assetlinks.json
ชื่อแพ็คเกจทั้งหมดของแอป Firebase ควรรวมอยู่ด้วยลิงก์แบบไดนามิกจะถูกส่งไปยังแอปของคุณโดยตรง คุณจะสามารถรับ Deep Link และข้อมูล Dynamic Link อื่นๆ ได้โดยการเรียก
getDynamicLink()
ในกิจกรรมที่คุณเพิ่มตัวกรอง Intent ของ App Link (ตามที่อธิบายไว้ใน Handle Deep Link )หมายเหตุ: เนื่องจากการเรียกใช้ผ่าน App Links จะนำผู้ใช้ไปยังแอปโดยตรง ลิงก์แบบไดนามิกจึงไม่สามารถทำตามเวอร์ชันขั้นต่ำที่กำหนดได้ ดังนั้นเมื่อเปิดแอปแล้ว คุณต้องเปรียบเทียบเวอร์ชันขั้นต่ำของลิงก์แบบไดนามิก ( getminimumappversion ) กับ PackageInfo.versionCode และเปลี่ยนเส้นทางผู้ใช้ให้อัปเกรดแอปหากจำเป็นโดยใช้ getUpdateAppIntent
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 2023-02-03 UTC.
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"ไม่มีข้อมูลที่ฉันต้องการ" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป" },{ "type": "thumb-down", "id": "outOfDate", "label":"ล้าสมัย" },{ "type": "thumb-down", "id": "translationIssue", "label":"ปัญหาเกี่ยวกับการแปล" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด" },{ "type": "thumb-down", "id": "otherDown", "label":"อื่นๆ" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"เข้าใจง่าย" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"แก้ปัญหาของฉันได้" },{ "type": "thumb-up", "id": "otherUp", "label":"อื่นๆ" }]