پیوندهای پویا را در Android ایجاد کنید

می توانید با API Firebase Dynamic Links Builder پیوندهای پویا کوتاه یا بلند ایجاد کنید. این API یا یک پیوند پویا طولانی یا یک شیء حاوی پارامترهای پیوند پویا را می پذیرد و URL ها را مانند مثالهای زیر برمی گرداند:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

قبل از ایجاد پیوندهای پویا در برنامه Android خود ، باید Firebase SDK را وارد کنید. اگر برنامه شما برای دریافت پیوندهای پویا تنظیم شده است ، این مراحل را قبلاً انجام داده اید و می توانید این بخش را رد کنید.

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

    اگر قبلاً دامنه Dynamic Links دارید ، به آن توجه کنید. هنگام ایجاد پیوندهای پویا ، باید دامنه Dynamic Links را ارائه دهید.

  5. توصیه می شود: مشخص الگوهای URL مجاز در لینک های عمیق خود را و لینک مجدد. با این کار ، شما از ایجاد پیوندهای پویا که از دامنه شما به سایت هایی که کنترل آنها را ندارید ، هدایت می کنید از احزاب غیر مجاز جلوگیری می کنید. مشاهده اجازه الگوهای URL خاص .

از کنسول Firebase استفاده کنید

اگر شما می خواهید برای تولید یک پیوند پویا، یا برای تست و اهداف، و یا برای تیم بازاریابی خود را به راحتی یک لینک است که می تواند در چیزی شبیه به یک پست رسانه های اجتماعی استفاده می شود ایجاد، ساده ترین راه این است که به بازدید از فایربیس کنسول و ایجاد یک فرم گام به گام را به صورت دستی دنبال کنید.

برای ایجاد یک پیوند پویا، ایجاد یک جدید DynamicLink شی با ساز خود، تعیین پارامترهای پیوند پویا با روش ساز. سپس، پاسخ buildDynamicLink یا buildShortDynamicLink .

در زیر حداقل به عنوان مثال یک پیوند پویا طولانی ایجاد به https://www.example.com/ که با برنامه آندروید خود را بر روی آندروید و برنامه باز می شود com.example.ios در iOS:

جاوا

DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        // Open links with this app on Android
        .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
        // Open links with com.example.ios on iOS
        .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build())
        .buildDynamicLink();

Uri dynamicLinkUri = dynamicLink.getUri();

Kotlin+KTX

val dynamicLink = Firebase.dynamicLinks.dynamicLink {
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    // Open links with this app on Android
    androidParameters { }
    // Open links with com.example.ios on iOS
    iosParameters("com.example.ios") { }
}

val dynamicLinkUri = dynamicLink.uri

برای ایجاد یک پیوند پویا کوتاه، ساخت یک DynamicLink به همان شیوه، و سپس پاسخ buildShortDynamicLink . ساختمان یک لینک کوتاه نیاز به یک پاسخ شبکه، بنابراین به جای به طور مستقیم از بازگشت از لینک، buildShortDynamicLink بازده یک Task ، که باعث می شود از لینک کوتاه در دسترس زمانی که کامل درخواست. مثلا:

جاوا

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        // Set parameters
        // ...
        .buildShortDynamicLink()
        .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
            @Override
            public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                if (task.isSuccessful()) {
                    // Short link created
                    Uri shortLink = task.getResult().getShortLink();
                    Uri flowchartLink = task.getResult().getPreviewLink();
                } else {
                    // Error
                    // ...
                }
            }
        });

Kotlin+KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync {
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    // Set parameters
    // ...
}.addOnSuccessListener { (shortLink, flowchartLink) ->
    // You'll need to import com.google.firebase.dynamiclinks.ktx.component1 and
    // com.google.firebase.dynamiclinks.ktx.component2

    // Short link created
    processShortLink(shortLink, flowchartLink)
}.addOnFailureListener {
    // Error
    // ...
}

به طور پیش فرض ، پیوندهای پویای کوتاه با پسوندهای پیوند 17 کاراکتری ایجاد می شوند که بعید است کسی بتواند یک پیوند پویا معتبر را حدس بزند. اگر، برای مورد استفاده شما، هیچ آسیبی در کسی موفقیت حدس زدن یک لینک کوتاه وجود دارد، شما ممکن است ترجیح دهند برای تولید پسوند که تنها تا زمانی که لازم به منحصر به فرد، که شما می توانید انجام دهید با عبور ShortDynamicLink.Suffix.SHORT به buildShortDynamicLink روش :

جاوا

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        // ...
        .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT);
        // ...

Kotlin+KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) {
    // Set parameters
    // ...
}

برای ایجاد پیوندهای پویا با هر یک از پارامترهای پشتیبانی شده می توانید از API Dynamic Link Builder استفاده کنید. را ببینید API مرجع برای جزئیات بیشتر.

مثال زیر یک لینک پویا با چندین پارامتر مشترک ایجاد می کند:

جاوا

DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        .setAndroidParameters(
                new DynamicLink.AndroidParameters.Builder("com.example.android")
                        .setMinimumVersion(125)
                        .build())
        .setIosParameters(
                new DynamicLink.IosParameters.Builder("com.example.ios")
                        .setAppStoreId("123456789")
                        .setMinimumVersion("1.0.1")
                        .build())
        .setGoogleAnalyticsParameters(
                new DynamicLink.GoogleAnalyticsParameters.Builder()
                        .setSource("orkut")
                        .setMedium("social")
                        .setCampaign("example-promo")
                        .build())
        .setItunesConnectAnalyticsParameters(
                new DynamicLink.ItunesConnectAnalyticsParameters.Builder()
                        .setProviderToken("123456")
                        .setCampaignToken("example-promo")
                        .build())
        .setSocialMetaTagParameters(
                new DynamicLink.SocialMetaTagParameters.Builder()
                        .setTitle("Example of a Dynamic Link")
                        .setDescription("This link works whether the app is installed or not!")
                        .build())
        .buildDynamicLink();  // Or buildShortDynamicLink()

Kotlin+KTX

val dynamicLink = Firebase.dynamicLinks.dynamicLink { // or Firebase.dynamicLinks.shortLinkAsync
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    androidParameters("com.example.android") {
        minimumVersion = 125
    }
    iosParameters("com.example.ios") {
        appStoreId = "123456789"
        minimumVersion = "1.0.1"
    }
    googleAnalyticsParameters {
        source = "orkut"
        medium = "social"
        campaign = "example-promo"
    }
    itunesConnectAnalyticsParameters {
        providerToken = "123456"
        campaignToken = "example-promo"
    }
    socialMetaTagParameters {
        title = "Example of a Dynamic Link"
        description = "This link works whether the app is installed or not!"
    }
}

می توانید پارامترهای Dynamic Link را با روش های زیر تنظیم کنید:

پارامترهای DynamicLink
setLink

پیوند برنامه شما باز می شود. نشانی اینترنتی را مشخص کنید که برنامه شما بتواند مدیریت کند ، معمولاً محتوا یا بار برنامه ، که منطق خاص برنامه را آغاز می کند (مانند اعتبار دادن به کاربر با کوپن یا نمایش صفحه خوش آمد گویی). این پیوند باید یک URL با فرمت خوب باشد ، به درستی کدگذاری URL شود ، از HTTP یا HTTPS استفاده کند و نمی تواند پیوند پویای دیگری باشد.

setDomainUriPrefix پیشوند URL Dynamic Link شما ، که می توانید در کنسول Firebase پیدا کنید. پویا لینک به نظر می رسد دامنه مانند مثال زیر:
https://example.com/link
https://example.page.link
اندروید پارامترها
setFallbackUrl پیوندی که هنگام نصب برنامه باز نمی شود. این کار را برای انجام کاری غیر از نصب برنامه خود از فروشگاه Play در مواقعی که برنامه نصب نشده است انجام دهید ، مانند باز کردن نسخه وب موبایل محتوا یا نمایش یک صفحه تبلیغاتی برای برنامه خود.
setMinimumVersion versionCode از نسخه حداقل از برنامه شما که می توانید از لینک را باز کنید. اگر برنامه نصب شده نسخه قدیمی باشد ، کاربر برای ارتقاء برنامه به فروشگاه Play منتقل می شود.
IosParameters
setAppStoreId شناسه App Store برنامه شما ، برای ارسال کاربران به App Store زمانی که برنامه نصب نشده است استفاده می شود
setFallbackUrl پیوندی که هنگام نصب برنامه باز نمی شود. این کار را برای انجام کاری غیر از نصب برنامه خود از App Store در زمانی که برنامه نصب نشده است انجام دهید ، مانند باز کردن نسخه وب موبایل محتوا یا نمایش یک صفحه تبلیغاتی برای برنامه خود.
setCustomScheme برنامه URL سفارشی برنامه شما ، اگر چیزی غیر از شناسه بسته برنامه شما باشد
setIpadFallbackUrl پیوند برای باز کردن در iPads زمانی که برنامه نصب نشده است. این کار را برای انجام کاری غیر از نصب برنامه خود از App Store در زمانی که برنامه نصب نشده است انجام دهید ، مانند باز کردن نسخه وب محتوا یا نمایش یک صفحه تبلیغاتی برای برنامه خود.
setIpadBundleId شناسه بسته نرم افزاری iOS برای استفاده در iPads برای باز کردن پیوند. برنامه باید از صفحه نمای کلی کنسول Firebase به پروژه شما متصل شود.
setMinimumVersion شماره نسخه از نسخه حداقل از برنامه شما که می توانید از لینک را باز کنید. این پرچم هنگام باز شدن به برنامه شما منتقل می شود و برنامه شما باید تصمیم بگیرد که با آن چکار کند.
NavigationInfoParameters
setForcedRedirectEnabled اگر روی "1" تنظیم شده است ، با باز شدن پیوند پویا صفحه پیش نمایش برنامه را رد کنید و در عوض به برنامه یا فروشگاه هدایت کنید. هنگامی که پیوندهای پویا را در برنامه ها باز می کنند ، صفحه پیش نمایش برنامه (به طور پیش فرض فعال است) می تواند با اطمینان بیشتری کاربران را به مناسب ترین مقصد بفرستد. با این حال ، اگر انتظار دارید پیوند پویا فقط در برنامه هایی باز شود که می توانند بدون این صفحه پیوندهای پویا را با اطمینان باز کنند ، می توانید آن را با این پارامتر غیرفعال کنید. این پارامتر روی رفتار Dynamic Link فقط در iOS تأثیر می گذارد.
SocialMetaTagParameters
setTitle عنوان مورد استفاده برای زمانی که پیوند پویا در یک پست اجتماعی به اشتراک گذاشته می شود.
setDescription توضیحاتی که هنگام اشتراک گذاری پیوند پویا در یک پست اجتماعی استفاده می شود.
setImageUrl آدرس یک تصویر مربوط به این پیوند. تصویر باید حداقل 300x200 پیکسل و کمتر از 300 کیلوبایت باشد.
GoogleAnalyticsParameters
setSource
setMedium
setCampaign
setTerm
setContent
پارامترهای تجزیه و تحلیل Google Play. این پارامترها ( utm_source ، utm_medium ، utm_campaign ، utm_term ، utm_content ) در به فروشگاه Play و همچنین به محموله لینک اضافه به تصویب رسید.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
iTunes متصل پارامترهای تجزیه و تحلیل. این پارامترها ( pt ، at ، ct ) به فروشگاه App منتقل می شود.

برای کوتاه کردن این پیوند پویا طولانی، آدرس لینک پویا مشخص با استفاده از setLongLink به جای تنظیم پارامترها با روش های دیگر سازنده:

جاوا

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLongLink(Uri.parse("https://example.page.link/?link=https://www.example.com/&apn=com.example.android&ibn=com.example.ios"))
        .buildShortDynamicLink()
        .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
            @Override
            public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                if (task.isSuccessful()) {
                    // Short link created
                    Uri shortLink = task.getResult().getShortLink();
                    Uri flowchartLink = task.getResult().getPreviewLink();
                } else {
                    // Error
                    // ...
                }
            }
        });

Kotlin+KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync {
    longLink = Uri.parse("https://example.page.link/?link=" +
            "https://www.example.com/&apn=com.example.android&ibn=com.example.ios")
}.addOnSuccessListener { (shortLink, flowChartLink) ->
    // You'll need to import com.google.firebase.dynamiclinks.ktx.component1 and
    // com.google.firebase.dynamiclinks.ktx.component2

    // Short link created
    processShortLink(shortLink, flowChartLink)
}.addOnFailureListener {
    // Error
    // ...
}