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

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

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

    وقتی برنامه خود را ثبت می کنید ، کلید امضای SHA-1 خود را مشخص کنید. اگر از پیوندهای برنامه استفاده می کنید ، کلید 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:28.4.1')
    
        // 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:20.1.1'
        implementation 'com.google.firebase:firebase-analytics:19.0.1'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.4.1')
    
        // 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:20.1.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:19.0.1'
    }
    
  3. در فایربیس کنسول ، باز کردن بخش پویا لینک. اگر از شما خواسته شد شرایط خدمات را بپذیرید.

همانطور که با پیوندهای عمیق ساده ، شما باید یک فیلتر جدید قصد فعالیت است که دسته پیوندهای عمیق برای برنامه خود اضافه کنید. فیلتر قصد باید پیوندهای عمیق دامنه شما را بگیرد ، زیرا در صورت نصب برنامه شما ، Dynamic Link به دامنه شما هدایت می شود. این مورد نیاز است تا برنامه شما داده های Dynamic Link را پس از نصب/بروزرسانی از فروشگاه Play و یک ضربه زدن روی دکمه ادامه دریافت کند. در 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 Analytics است. این است که معمولا به صورت خودکار توسط اضافه google-services Gradle پلاگین.
    • شامل google-services.json فایل پیکربندی در برنامه شما.
    • پاسخ FirebaseAnalytics.getInstance() قبل از تماس FirebaseDynamicLinks.getDynamicLink() .

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

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

اضافه کردن یک فیلتر 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 .