برای دریافت پیوندهای دینامیک Firebase که ایجاد کردهاید ، باید SDK پیوندهای پویا را در برنامه خود قرار دهید و هنگام بارگیری برنامه شما، متد FirebaseDynamicLinks.getDynamicLink()
را فراخوانی کنید تا دادههای ارسال شده در پیوند پویا دریافت شود.
Firebase و Dynamic Links SDK را راه اندازی کنید
اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Android خود اضافه کنید .
هنگامی که برنامه خود را ثبت می کنید، کلید امضای SHA-1 خود را مشخص کنید. اگر از App Links استفاده می کنید، کلید SHA-256 خود را نیز مشخص کنید.
در فایل Gradle ماژول (سطح برنامه) خود (معمولا
<project>/<app-module>/build.gradle
)، وابستگی را برای کتابخانه Android Dynamic Links اضافه کنید. توصیه میکنیم از Firebase Android BoM برای کنترل نسخهسازی کتابخانه استفاده کنید.برای تجربه بهینه با Dynamic Links، توصیه میکنیم 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 ، بخش Dynamic Links را باز کنید. اگر از شما خواسته شد شرایط خدمات را بپذیرید.
یک فیلتر قصد برای پیوندهای عمیق اضافه کنید
مانند پیوندهای عمیق ساده ، باید یک فیلتر قصد جدید به فعالیت اضافه کنید که پیوندهای عمیق را برای برنامه شما مدیریت می کند. فیلتر هدف باید پیوندهای عمیق دامنه شما را بگیرد، زیرا اگر برنامه شما نصب شود، پیوند پویا به دامنه شما هدایت می شود. این برای دریافت دادههای Dynamic Link پس از نصب/بهروزرسانی از Play Store و یک ضربه زدن روی دکمه Continue، لازم است. در
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()
فراخوانی کنید: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 را پیکربندی کنید. بررسی کنید که شرایط زیر وجود دارد:
- با
FirebaseDynamicLinks.getDynamicLink()
در نقاط ورودی برنامه خود تماس بگیرید: - فعالیت های لانچر به عنوان مثال:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
. - نقاط ورود به فعالیت به عنوان مثال:
onStart()
,onCreate()
. - فعالیت های پیوند عمیق
- راه اندازی و استفاده از Google Analytics:
- وابستگی گوگل آنالیتیکس را نیز لحاظ کنید. این معمولاً به طور خودکار توسط پلاگین
google-services
Gradle اضافه می شود. - فایل پیکربندی
google-services.json
را در برنامه خود قرار دهید . - قبل از فراخوانی
FirebaseDynamicLinks.getDynamicLink()
FirebaseAnalytics.getInstance()
تماس بگیرید.
مدیریت پیوندهای پویا با استفاده از پیوندهای برنامه
در Android 6.0 (سطح API 23) و بالاتر، میتوانید برنامه خود را طوری تنظیم کنید که وقتی برنامه شما قبلاً نصب شده است، با استفاده از پیوندهای برنامه Android، مستقیماً پیوندهای پویا را مدیریت کند.
مطمئن شوید که اثر انگشت گواهی SHA256 را برای برنامه خود به پروژه خود در کنسول Firebase اضافه کرده اید. Dynamic Links راه اندازی ارتباط وب سایت App Links را برای دامنه Dynamic Links شما انجام می دهد.
یک فیلتر هدف تأیید شده خودکار به Activity اضافه کنید که پیوند پویا را مدیریت میکند و میزبان را روی دامنه پیوندهای پویا پروژه شما همانطور که در کنسول 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 شما تنظیم شود و نه دامنه پیوند عمیق شما.همه فیلترهای هدف
autoVerify
در مانیفست شما باید ثبت شوند تا پیوندهای برنامه درگیر شوند. Firebase این کار را بهطور خودکار برای دامنههای Dynamic Links شما انجام میدهد، اما میتوانید با باز کردن فایلassetlinks.json
میزبانی شده در دامنه Dynamic Links شما، این موضوع را بررسی کنید:https://YOUR_DOMAIN/.well-known/assetlinks.json
همه نامهای بسته برنامههای Firebase شما باید گنجانده شوند.اکنون پیوندهای پویا مستقیماً به برنامه شما ارسال می شود. با فراخوانی
getDynamicLink()
در فعالیتی که فیلتر هدف App Links را به آن اضافه کردهاید، میتوانید پیوند عمیق و سایر دادههای پیوند پویا را دریافت کنید (همانطور که در Handle deep links توضیح داده شد).توجه: از آنجایی که فراخوانی از طریق پیوندهای برنامه کاربر را مستقیماً به برنامه می برد، پیوند پویا نمی تواند حداقل نسخه مورد نیاز را رعایت کند. بنابراین پس از باز شدن برنامه، باید حداقل نسخه Dynamic Link ( getminimumappversion ) را با PackageInfo.versionCode مقایسه کنید و کاربر را برای ارتقاء برنامه در صورت لزوم با استفاده از getUpdateAppIntent هدایت کنید.
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2023-06-02 بهوقت ساعت هماهنگ جهانی.
[{ "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":"غیره" }]