پیوندهای پویای Firebase را در Android دریافت کنید

برای دریافت فایربیس پویا لینک هایی که شما ایجاد ، شما باید پویا لینک SDK در برنامه شما را شامل و تماس FirebaseDynamicLinks.getDynamicLink() روش هنگامی که بارهای برنامه خود را برای دریافت داده ها به تصویب رسید در پیوند پویا.

  1. اگر شما در حال حاضر، اضافه فایربیس به پروژه آندروید خود را .

    هنگامی که برنامه خود را ثبت می کنید، کلید امضای SHA-1 خود را مشخص کنید. اگر از App Links استفاده می کنید، کلید SHA-256 خود را نیز مشخص کنید.

  2. با استفاده از فایربیس آندروید BOM ، اعلام وابستگی برای کتابخانه پویا لینک آندروید در ماژول خود را (در سطح برنامه) فایل Gradle (معمولا app/build.gradle ).

    برای یک تجربه بهینه با پویا لینک ها، توصیه می کنیم قادر می سازد گوگل آنالیز در پروژه Firebase خود و اضافه کردن SDK فایربیس برای گوگل آنالیز برای برنامه شما.

    جاوا

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.4')
    
        // Declare 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'
    }
    

    با استفاده از فایربیس آندروید BOM ، برنامه شما همیشه نسخه های سازگار با کتابخانه فایربیس آندروید استفاده خواهد کرد.

    (جایگزین) اعلام فایربیس وابستگی کتابخانه بدون استفاده از BOM

    اگر تصمیم گرفتید از Firebase BoM استفاده نکنید، باید هر نسخه کتابخانه Firebase را در خط وابستگی آن مشخص کنید.

    توجه داشته باشید که در صورت استفاده از کتابخانه فایربیس های متعدد در برنامه شما، ما به شدت توصیه با استفاده از BOM به مدیریت نسخه های کتابخانه، که تضمین می کند که تمام نسخه های سازگار است.

    dependencies {
        // Declare 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.0.0'
        implementation 'com.google.firebase:firebase-analytics:20.0.2'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.4')
    
        // Declare 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'
    }
    

    با استفاده از فایربیس آندروید BOM ، برنامه شما همیشه نسخه های سازگار با کتابخانه فایربیس آندروید استفاده خواهد کرد.

    (جایگزین) اعلام فایربیس وابستگی کتابخانه بدون استفاده از BOM

    اگر تصمیم گرفتید از Firebase BoM استفاده نکنید، باید هر نسخه کتابخانه Firebase را در خط وابستگی آن مشخص کنید.

    توجه داشته باشید که در صورت استفاده از کتابخانه فایربیس های متعدد در برنامه شما، ما به شدت توصیه با استفاده از BOM به مدیریت نسخه های کتابخانه، که تضمین می کند که تمام نسخه های سازگار است.

    dependencies {
        // Declare 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.0.0'
        implementation 'com.google.firebase:firebase-analytics-ktx:20.0.2'
    }
    
  3. در فایربیس کنسول ، باز کردن بخش پویا لینک. اگر از شما خواسته شد شرایط خدمات را بپذیرید.

همانطور که با پیوندهای عمیق ساده ، شما باید یک فیلتر جدید قصد فعالیت است که دسته پیوندهای عمیق برای برنامه خود اضافه کنید. فیلتر هدف باید پیوندهای عمیق دامنه شما را بگیرد، زیرا اگر برنامه شما نصب شود، پیوند پویا به دامنه شما هدایت می شود. این برای دریافت داده‌های 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() روش:

جاوا

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);
            }
        });

Kotlin+KTX

Firebase.dynamicLinks
        .getDynamicLink(intent)
        .addOnSuccessListener(this) { 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) }

شما باید پاسخ 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-services Gradle پلاگین.
    • شامل google-services.json فایل پیکربندی در برنامه شما.
    • پاسخ FirebaseAnalytics.getInstance() قبل از تماس FirebaseDynamicLinks.getDynamicLink() .

در اندیشه 6.0 (API سطح 23) و بالاتر، شما می توانید تا برنامه خود را که مسئولیت رسیدگی به پویا لینک مستقیم زمانی که برنامه شما در حال حاضر با استفاده از نصب نرم افزار آندروید لینک .

اطمینان حاصل شود که شما در SHA256 اثر انگشت با گواهی برای برنامه های خود را به پروژه خود را در اضافه شده اند کنسول فایربیس . Dynamic Links راه‌اندازی ارتباط وب‌سایت App Links را برای دامنه Dynamic Links شما انجام می‌دهد.

اضافه کردن یک فیلتر intent خودکار تایید به فعالیت که پیوند پویا رسیدگی خواهد شد، تنظیم میزبان به دامنه پویا لینک پروژه خود را به عنوان در کنسول فایربیس پیدا شده است . در 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 فیلترهای قصد در مانیفست خود را باید به منظور برای برنامه ها به شرکت ثبت شده است. دسته فایربیس این به طور خودکار برای دامنه پویا لینک خود را، اما شما می توانید این را با باز کردن بررسی assetlinks.json فایل میزبانی دامنه پویا لینک خود قرار دهید:

https://YOUR_DOMAIN/.well-known/assetlinks.json
همه از بسته برنامه های فایربیس خود را باید گنجانده شود.

اکنون پیوندهای پویا مستقیماً به برنامه شما ارسال می شود. شما قادر خواهید بود برای دریافت پیوند عمیق و دیگر داده های پیوند پویا با تماس خواهد getDynamicLink() در فعالیت های شما اضافه شده برنامه ها فیلتر قصد (همان طور که در پیوندهای عمیق دسته دار ).

توجه: از آنجا فراخوانی از طریق برنامه ها طول می کشد کاربر به طور مستقیم به برنامه، یک پیوند پویا می توانید نسخه حداقل مورد نیاز افتخار نیست. پس یک بار که برنامه باز است، شما نیاز به مقایسه حداقل نسخه پیوند پویا (از getminimumappversion ) در برابر PackageInfo.versionCode و هدایت کاربر به روز رسانی برنامه در صورت نیاز با استفاده از getUpdateAppIntent .