ในการรับ 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:32.1.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.3.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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.3.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
เนื้อหาของหน้าเว็บนี้ได้รับอนุญาตภายใต้ใบอนุญาตที่ต้องระบุที่มาของครีเอทีฟคอมมอนส์ 4.0 และตัวอย่างโค้ดได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูรายละเอียดที่นโยบายเว็บไซต์ Google Developers Java เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2023-06-02 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":"อื่นๆ" }]