شما میتوانید با استفاده از API سازنده Firebase Dynamic Links Dynamic Links کوتاه یا بلند ایجاد کنید. این API یا یک Dynamic Link بلند یا یک شیء حاوی پارامترهای Dynamic Link را میپذیرد و URLهایی مانند مثالهای زیر را برمیگرداند:
https://example.com/link/WXYZ https://example.page.link/WXYZ
فایربیس و SDK Dynamic Links راهاندازی کنید
قبل از اینکه بتوانید Dynamic Links در برنامه اندروید خود ایجاد کنید، باید Firebase SDK را وارد کنید. اگر برنامه شما برای دریافت Dynamic Links تنظیم شده است، این مراحل را قبلاً انجام دادهاید و میتوانید از این بخش صرف نظر کنید.
اگر هنوز Firebase را به پروژه اندروید خود اضافه نکردهاید، آن را اضافه کنید.
هنگام ثبت برنامه، کلید امضای SHA-1 خود را مشخص کنید. اگر از App Links استفاده میکنید، کلید SHA-256 خود را نیز مشخص کنید.
در فایل Gradle ماژول (سطح برنامه) خود (معمولاً
<project>/<app-module>/build.gradle.ktsیا<project>/<app-module>/build.gradle)، وابستگی مربوط به کتابخانه Dynamic Links برای اندروید را اضافه کنید. توصیه میکنیم از Firebase Android BoM برای کنترل نسخهبندی کتابخانه استفاده کنید.برای یک تجربه بهینه با Dynamic Links ، توصیه میکنیم Google Analytics در پروژه Firebase خود فعال کنید و Firebase SDK را برای Google Analytics به برنامه خود اضافه کنید.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.4.0")) // 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 استفاده خواهد کرد.
(جایگزین) اضافه کردن وابستگیهای کتابخانه 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:23.0.0' }
- در کنسول Firebase ، بخش Dynamic Links را باز کنید.
اگر قبلاً شرایط خدمات را نپذیرفتهاید و دامنهای برای Dynamic Links خود تنظیم نکردهاید، در صورت درخواست این کار را انجام دهید.
اگر از قبل یک دامنه Dynamic Links دارید، به آن توجه کنید. هنگام ایجاد Dynamic Links به صورت برنامهنویسی، باید یک دامنه Dynamic Links ارائه دهید.

- توصیه میشود : الگوهای URL مجاز در لینکهای عمیق و لینکهای جایگزین خود را مشخص کنید. با انجام این کار، از ایجاد Dynamic Links توسط اشخاص غیرمجاز که از دامنه شما به سایتهایی که کنترلی بر آنها ندارید هدایت میشوند، جلوگیری میکنید. به بخش «اجازه دادن به الگوهای خاص URL» مراجعه کنید.
استفاده از کنسول Firebase
اگر میخواهید یک Dynamic Link ایجاد کنید، چه برای اهداف آزمایشی و چه برای اینکه تیم بازاریابی شما به راحتی لینکی ایجاد کند که بتوان از آن در چیزی مانند یک پست در رسانههای اجتماعی استفاده کرد، سادهترین راه این است که به کنسول Firebase مراجعه کنید و با دنبال کردن فرم گام به گام، یکی را به صورت دستی ایجاد کنید.
ایجاد یک Dynamic Link از پارامترها
برای ایجاد یک Dynamic Link ، یک شیء DynamicLink جدید با Builder آن ایجاد کنید و پارامترهای Dynamic Link را با متدهای Builder مشخص کنید. سپس، buildDynamicLink یا buildShortDynamicLink فراخوانی کنید.
مثال مینیمال زیر یک Dynamic Link طولانی به https://www.example.com/ ایجاد میکند که با برنامه اندروید شما در اندروید و برنامه com.example.ios در iOS باز میشود:
Kotlin
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
Java
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();
برای ایجاد یک Dynamic Link ، به همین روش یک DynamicLink بسازید و سپس buildShortDynamicLink را فراخوانی کنید. ساخت یک لینک کوتاه نیاز به یک فراخوانی شبکه دارد، بنابراین به جای بازگرداندن مستقیم لینک، buildShortDynamicLink یک Task برمیگرداند که لینک کوتاه را پس از اتمام درخواست در دسترس قرار میدهد. برای مثال:
Kotlin
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.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowchartLink) }.addOnFailureListener { // Error // ... }
Java
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 // ... } } });
به طور پیشفرض، Dynamic Links کوتاه با پسوندهای لینک ۱۷ کاراکتری تولید میشوند که حدس زدن یک Dynamic Link معتبر را بسیار بعید میکند. اگر برای مورد استفاده شما، حدس زدن موفقیتآمیز یک لینک کوتاه توسط کسی ضرری ندارد، ممکن است ترجیح دهید پسوندهایی تولید کنید که فقط تا زمانی که برای منحصر به فرد بودن لازم است، طول داشته باشند، که میتوانید با ارسال ShortDynamicLink.Suffix.SHORT به متد buildShortDynamicLink این کار را انجام دهید:
Kotlin
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
پارامترهای Dynamic Link
شما میتوانید از API سازنده Dynamic Link برای ایجاد Dynamic Links با هر یک از پارامترهای پشتیبانی شده استفاده کنید. برای جزئیات بیشتر به مرجع API مراجعه کنید.
مثال زیر یک Dynamic Link با چندین پارامتر مشترک ایجاد میکند:
Kotlin
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!" } }
Java
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()
شما میتوانید پارامترهای Dynamic Link با روشهای زیر تنظیم کنید:
| پارامترهای DynamicLink | |
|---|---|
| ستلینک | لینکی که برنامه شما باز خواهد کرد. یک URL مشخص کنید که برنامه شما میتواند آن را مدیریت کند، معمولاً محتوای برنامه یا محتوای برنامه که منطق خاص برنامه را آغاز میکند (مانند اعطای کوپن به کاربر یا نمایش صفحه خوشامدگویی). این لینک باید یک URL با فرمت مناسب باشد، به درستی URL-encode شده باشد، از HTTP یا HTTPS استفاده کند و نمیتواند یک لینک پویای دیگر باشد. |
| setDomainUriPrefix | پیشوند URL Dynamic Link شما، که میتوانید آن را در کنسول Firebase پیدا کنید. یک دامنه Dynamic Link مانند مثالهای زیر است: https://example.com/link https://example.page.link |
| پارامترهای اندروید | |
|---|---|
| تنظیمFallbackUrl | لینکی که وقتی برنامه نصب نشده است باز میشود. این را مشخص کنید تا وقتی برنامه نصب نشده است، کاری غیر از نصب برنامه از فروشگاه Play انجام دهد، مانند باز کردن نسخه وب موبایل محتوا یا نمایش یک صفحه تبلیغاتی برای برنامه شما. |
| تنظیم حداقل نسخه | versionCode حداقل نسخه برنامه شما که میتواند لینک را باز کند. اگر برنامه نصب شده نسخه قدیمیتری باشد، کاربر برای ارتقاء برنامه به فروشگاه Play هدایت میشود. |
| پارامترهای Ios | |
|---|---|
| شناسه فروشگاه برنامه را تنظیم کنید | شناسه اپ استور برنامه شما، که برای هدایت کاربران به اپ استور در زمانی که برنامه نصب نشده است، استفاده میشود. |
| تنظیمFallbackUrl | لینکی که وقتی برنامه نصب نشده است باز میشود. این را مشخص کنید تا وقتی برنامه نصب نشده است، کاری غیر از نصب برنامه از اپ استور انجام دهد، مانند باز کردن نسخه وب موبایل محتوا، یا نمایش یک صفحه تبلیغاتی برای برنامه شما. |
| setCustomScheme | طرح URL سفارشی برنامه شما، اگر چیزی غیر از شناسه بسته برنامه شما تعریف شده باشد |
| تنظیم آدرس آیپد (setIpadFallbackUrl) | لینکی که در آیپدها وقتی برنامه نصب نشده است باز میشود. این را مشخص کنید تا وقتی برنامه نصب نشده است، کاری غیر از نصب برنامه از اپ استور انجام دهد، مانند باز کردن نسخه وب محتوا یا نمایش یک صفحه تبلیغاتی برای برنامه شما. |
| تنظیم شناسه بسته آیپد | شناسه بسته برنامه iOS برای استفاده در iPads برای باز کردن لینک. برنامه باید از صفحه Overview کنسول Firebase به پروژه شما متصل شود. |
| تنظیم حداقل نسخه | شماره نسخه حداقل نسخه برنامه شما که میتواند لینک را باز کند. این پرچم هنگام باز شدن به برنامه شما منتقل میشود و برنامه شما باید تصمیم بگیرد که با آن چه کاری انجام دهد. |
| پارامترهای اطلاعات ناوبری | |
|---|---|
| تنظیم تغییر مسیر اجباری فعال شد | اگر روی «۱» تنظیم شود، هنگام باز شدن Dynamic Link ، صفحه پیشنمایش برنامه را رد میکند و در عوض به برنامه یا فروشگاه هدایت میشود. صفحه پیشنمایش برنامه (که به طور پیشفرض فعال است) میتواند کاربران را هنگام باز کردن Dynamic Links در برنامهها، با اطمینان بیشتری به مناسبترین مقصد هدایت کند. با این حال، اگر انتظار دارید Dynamic Link فقط در برنامههایی باز شود که میتوانند Dynamic Links بدون این صفحه به طور مطمئن باز کنند، میتوانید آن را با این پارامتر غیرفعال کنید. این پارامتر فقط بر رفتار Dynamic Link در iOS تأثیر میگذارد. |
| پارامترهای متا تگ اجتماعی | |
|---|---|
| عنوان تنظیم | عنوانی که هنگام اشتراکگذاری Dynamic Link در یک پست اجتماعی استفاده میشود. |
| مجموعهتوضیحات | توضیحی که هنگام اشتراکگذاری Dynamic Link در یک پست اجتماعی استفاده میشود. |
| تنظیم تصویرURL | آدرس اینترنتی (URL) تصویری مرتبط با این لینک. تصویر باید حداقل ۳۰۰x۲۰۰ پیکسل و کمتر از ۳۰۰ کیلوبایت باشد. |
| پارامترهای گوگل آنالیتیکس | |
|---|---|
| تنظیم منبع تنظیم متوسط کمپین تنظیمشده تنظیم مدت تنظیم محتوا | پارامترهای تحلیلی گوگل پلی. این پارامترها ( utm_source ، utm_medium ، utm_campaign ، utm_term ، utm_content ) به فروشگاه پلی منتقل شده و همچنین به لینک بارگذاری شده اضافه میشوند. |
| پارامترهای تحلیلی iTunesConnect | |
|---|---|
| setProviderToken setAffiliateToken توکن کمپین | پارامترهای تحلیلی iTunes Connect. این پارامترها ( pt ، at ، ct ) به اپ استور منتقل میشوند. |
کوتاه کردن یک Dynamic Link طولانی
برای کوتاه کردن یک Dynamic Link طولانی، به جای تنظیم پارامترها با سایر متدهای سازنده، URL Dynamic Link را با استفاده از setLongLink مشخص کنید:
Kotlin
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.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowChartLink) }.addOnFailureListener { // Error // ... }
Java
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 // ... } } });