Google 致力于为黑人社区推动种族平等。查看具体举措
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

تلقي روابط Firebase الديناميكية على Android

لتلقي روابط Firebase الديناميكية التي قمت بإنشائها ، يجب عليك تضمين Dynamic Links SDK في تطبيقك واستدعاء طريقة FirebaseDynamicLinks.getDynamicLink() عند تحميل تطبيقك للحصول على البيانات التي تم تمريرها في الرابط الديناميكي.

  1. أضف Firebase إلى مشروع Android ، إذا لم تكن قد قمت بذلك بالفعل.

    عند تسجيل تطبيقك ، حدد مفتاح توقيع SHA-1. إذا كنت تستخدم ارتباطات التطبيق ، فحدد أيضًا مفتاح SHA-256 الخاص بك.

  2. باستخدام Firebase Android BoM ، أعلن عن تبعية مكتبة Dynamic Links Android في ملف Gradle ( على مستوى التطبيق) للوحدة النمطية (عادةً app/build.gradle ).

    للحصول على تجربة مثالية مع الروابط الديناميكية ، نوصي بتمكين Google Analytics في مشروعك. أيضًا ، كجزء من إعداد Analytics ، تحتاج إلى إضافة Firebase SDK لـ Google Analytics إلى تطبيقك.

    جافا

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

    باستخدام Firebase Android BoM ، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase Android.

    (بديل) قم بتعريف تبعيات مكتبة Firebase بدون استخدام BoM

    إذا اخترت عدم استخدام Firebase BoM ، فيجب عليك تحديد كل إصدار من إصدارات مكتبة Firebase في سطر التبعية الخاص بها.

    لاحظ أنه إذا كنت تستخدم مكتبات 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:19.1.1'
        implementation 'com.google.firebase:firebase-analytics:18.0.3'
    }
    

    Kotlin + KTX

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

    باستخدام Firebase Android BoM ، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase Android.

    (بديل) قم بتعريف تبعيات مكتبة Firebase بدون استخدام BoM

    إذا اخترت عدم استخدام Firebase BoM ، فيجب عليك تحديد كل إصدار من إصدارات مكتبة Firebase في سطر التبعية الخاص بها.

    لاحظ أنه إذا كنت تستخدم مكتبات 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:19.1.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:18.0.3'
    }
    
  3. في وحدة تحكم Firebase ، افتح قسم الروابط الديناميكية . اقبل شروط الخدمة إذا طُلب منك ذلك.

كما هو الحال مع الروابط العميقة العادية ، يجب إضافة عامل تصفية نية جديد إلى النشاط الذي يتعامل مع الروابط الداخلية لتطبيقك. يجب أن يلتقط عامل تصفية النية الروابط العميقة لنطاقك ، حيث سيعيد الرابط الديناميكي التوجيه إلى مجالك إذا كان تطبيقك مثبتًا. هذا مطلوب لتطبيقك لتلقي بيانات الرابط الديناميكي بعد تثبيته / تحديثه من متجر 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() ، اتصل 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() .

في الإصدار Android 6.0 (المستوى 23 من واجهة برمجة التطبيقات) والإصدارات الأحدث ، يمكنك إعداد تطبيقك للتعامل مع الروابط الديناميكية مباشرةً عندما يكون تطبيقك مثبتًا بالفعل باستخدام روابط تطبيقات Android .

تأكد من إضافة بصمة شهادة SHA256 لتطبيقك إلى مشروعك في وحدة تحكم Firebase . ستتعامل الروابط الديناميكية مع إعداد ارتباط موقع ارتباطات التطبيقات لنطاق الروابط الديناميكية.

أضف عامل تصفية نوايا تم التحقق منه تلقائيًا إلى النشاط الذي سيتعامل مع الارتباط الديناميكي ، مع تعيين المضيف إلى مجال الروابط الديناميكية لمشروعك كما هو موجود في وحدة تحكم 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 في البيان الخاص بك من أجل autoVerify روابط التطبيقات. يعالج Firebase هذا تلقائيًا لنطاقات الروابط الديناميكية الخاصة بك ، ولكن يمكنك التحقق من ذلك عن طريق فتح ملف assetlinks.json المستضاف على نطاق الروابط الديناميكية:

https://YOUR_DOMAIN/.well-known/assetlinks.json
يجب تضمين جميع أسماء حزم تطبيقات Firebase.

سيتم الآن إرسال الروابط الديناميكية مباشرة إلى تطبيقك. ستتمكن من الحصول على الرابط لموضع معين وبيانات الارتباط الديناميكي الأخرى عن طريق استدعاء getDynamicLink() في النشاط الذي أضفت إليه عامل تصفية هدف روابط التطبيقات (كما هو موضح في التعامل مع الروابط الداخلية ).