برای دریافت Firebase Dynamic Links که
ایجاد کردهاید، باید کیت توسعه نرمافزار Dynamic Links را در برنامهتان اضافه کنید و هنگام بار شدن برنامه،
روش FirebaseDynamicLinks.getDynamicLink() را فراخوانی کنید تا
دادههای منتقلشده در Dynamic Link را دریافت کنید.
راهاندازی Firebase و کیت توسعه نرمافزار Dynamic Links
اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Android خود اضافه کنید.
وقتی برنامهتان را ثبت میکنید، کلید امضای SHA-1 خود را مشخص کنید. اگر از «پیوندهای برنامه» استفاده میکنید، کلید SHA-256 خود را نیز مشخص کنید.
-
در فایل Gradle (سطح برنامه) (معمولاً
<project>/<app-module>/build.gradle.ktsیا<project>/<app-module>/build.gradle)، وابستگی کتابخانه Dynamic Links را برای Android اضافه کنید. توصیه میکنیم از Firebase Android BoM برای کنترل نسخهبندی کتابخانه استفاده کنید.برای داشتن تجربه بهینه با Dynamic Links، توصیه میکنیم Google Analytics را فعال کنید در پروژه Firebase خود و افزودن کیت توسعه نرمافزار Firebase برای Google Analytics به برنامه خود.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.2")) // 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:22.1.0' implementation 'com.google.firebase:firebase-analytics:24.0.0' }
- در کنسول Firebase، بخش Dynamic Links را باز کنید. اگر از شما خواسته شد، شرایط خدمات را بپذیرید.
افزودن فیلتر هدف برای پیوندهای عمیق
مانند
پیوندهای عمیق ساده، باید فیلتر قصد جدیدی به فعالیتی که پیوندهای عمیق را برای برنامهتان مدیریت میکند اضافه کنید. فیلتر قصد باید پیوندهای عمیق دامنهتان را دریافت کند، زیرا اگر برنامهتان نصب شده باشد، Dynamic Link به دامنهتان هدایت خواهد شد. این کار برای این لازم است که برنامهتان پساز نصب/بهروزرسانی از «فروشگاه Play» و ضربه زدن روی دکمه «ادامه»، دادههای Dynamic Link را دریافت کند. در 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 را با پیوند عمیقی به طرح و میزبانی که مشخص کردهاید باز میکنند، برنامه شما فعالیت را با این فیلتر قصد برای رسیدگی به پیوند شروع میکند.
مدیریت پیوندهای عمیق
برای دریافت لینک عمیق، روش getDynamicLink() را فراخوانی کنید:
Kotlin
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_opendynamic_link_first_opendynamic_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را در برنامهتان اضافه کنید. - قبلاز تماس با
FirebaseDynamicLinks.getDynamicLink()، باFirebaseAnalytics.getInstance()تماس بگیرید.
مدیریت Dynamic Links بااستفاده از «پیوندهای برنامه»
در Android نسخه ۶.۰ (سطح میانای برنامهسازی کاربردی ۲۳) و بالاتر، میتوانید برنامهتان را طوری تنظیم کنید که Dynamic Links را مستقیماً وقتی برنامهتان ازقبل نصب شده است بااستفاده از پیوندهای برنامه Android مدیریت کند.
مطمئن شوید که اثر انگشت گواهی SHA256 را برای برنامهتان در پروژه خود در کنسول Firebase اضافه کردهاید. Dynamic Links راهاندازی انجمن وبسایت «پیوندهای برنامه» را برای دامنه Dynamic Links شما مدیریت خواهد کرد.
فیلتر هدف درستیسنجیشده خودکار را به «فعالیت» اضافه کنید تا 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 شما تنظیم شود، نه دامنه
پیوند عمیق شما.
برای اینکه «پیوندهای برنامه» فعال شود، همه فیلترهای قصد autoVerify در مانیفست شما باید ثبت شده باشد. Firebase این کار را بهطور خودکار برای دامنههای Dynamic Links شما انجام میدهد، اما میتوانید
این موضوع را با باز کردن فایل assetlinks.json که در دامنه Dynamic Links شما میزبانی میشود بررسی کنید:
https://YOUR_DOMAIN/.well-known/assetlinks.json
Dynamic Links اکنون مستقیماً به برنامه شما ارسال خواهد شد. میتوانید پیوند عمیق و سایر دادههای Dynamic Link را با فراخوانی getDynamicLink() در «فعالیتی» که فیلتر قصد «پیوندهای برنامه» را به آن اضافه کردهاید دریافت کنید (همانطور که در رسیدگی به پیوندهای عمیق شرح داده شده است).
توجه: ازآنجاییکه فراخوانی ازطریق «پیوندهای برنامه» کاربر را مستقیماً به برنامه میبرد، «پیوند پویا» نمیتواند حداقل نسخه موردنیاز را رعایت کند. بنابراین، پساز باز شدن برنامه، باید حداقل نسخه «پیوند پویا» ( getminimumappversion) را با PackageInfo.versionCode مقایسه کنید و درصورت نیاز، کاربر را بااستفاده از getUpdateAppIntent برای ارتقای برنامه هدایت کنید.