با Firebase Dynamic Links Builder API می توانید پیوندهای پویا کوتاه یا طولانی ایجاد کنید. این API یا یک پیوند پویا طولانی یا یک شی حاوی پارامترهای پیوند پویا را میپذیرد و نشانیهای اینترنتی مانند مثالهای زیر را برمیگرداند:
https://example.com/link/WXYZ https://example.page.link/WXYZ
Firebase و Dynamic Links SDK را راه اندازی کنید
قبل از اینکه بتوانید پیوندهای پویا را در برنامه اندروید خود ایجاد کنید، باید Firebase SDK را اضافه کنید. اگر برنامه شما برای دریافت پیوندهای پویا تنظیم شده است، قبلاً این مراحل را انجام داده اید و می توانید از این بخش رد شوید.
اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Android خود اضافه کنید .
هنگامی که برنامه خود را ثبت می کنید، کلید امضای SHA-1 خود را مشخص کنید. اگر از App Links استفاده می کنید، کلید SHA-256 خود را نیز مشخص کنید.
در فایل Gradle ماژول (سطح برنامه) خود (معمولا
<project>/<app-module>/build.gradle.kts
یا<project>/<app-module>/build.gradle
)، وابستگی را برای پیوندهای پویا اضافه کنید. کتابخانه برای اندروید توصیه میکنیم از 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:32.8.1")) // 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 Android استفاده میکند.
به دنبال یک ماژول کتابخانه خاص کاتلین هستید؟ از اکتبر 2023 (Firebase BoM 32.5.0) ، هم توسعه دهندگان Kotlin و هم جاوا می توانند به ماژول کتابخانه اصلی وابسته باشند (برای جزئیات، به سؤالات متداول در مورد این ابتکار مراجعه کنید).(جایگزین) وابستگی های کتابخانه 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:21.2.0' implementation 'com.google.firebase:firebase-analytics:21.6.2' }
- در کنسول Firebase، بخش Dynamic Links را باز کنید.
اگر قبلاً شرایط خدمات را نپذیرفته اید و دامنه ای را برای پیوندهای پویا خود تنظیم نکرده اید، زمانی که از شما خواسته شد این کار را انجام دهید.
اگر قبلاً دامنه پیوندهای پویا دارید، به آن توجه داشته باشید. زمانی که لینک های پویا را به صورت برنامه نویسی ایجاد می کنید، باید یک دامنه پیوندهای پویا ارائه دهید.
- توصیه شده : الگوهای URL مجاز در پیوندهای عمیق و پیوندهای بازگشتی خود را مشخص کنید. با انجام این کار، از ایجاد پیوندهای پویا توسط اشخاص غیرمجاز که از دامنه شما به سایت هایی که تحت کنترل شما نیستند هدایت می شوند، جلوگیری می کنید. به اجازه الگوهای URL خاص مراجعه کنید.
از کنسول Firebase استفاده کنید
اگر می خواهید یک لینک پویا ایجاد کنید، چه برای اهداف آزمایشی، یا برای اینکه تیم بازاریابی شما به راحتی پیوندی ایجاد کند که می تواند در چیزی مانند یک پست رسانه اجتماعی استفاده شود، ساده ترین راه این است که به کنسول Firebase مراجعه کنید و یکی ایجاد کنید. به صورت دستی فرم گام به گام را دنبال کنید.
یک پیوند پویا از پارامترها ایجاد کنید
برای ایجاد یک پیوند پویا، یک شی DynamicLink
جدید با سازنده آن ایجاد کنید و پارامترهای Dynamic Link را با متدهای Builder مشخص کنید. سپس، buildDynamicLink
یا buildShortDynamicLink
را فراخوانی کنید.
مثال حداقلی زیر یک پیوند پویا طولانی به https://www.example.com/
ایجاد می کند که با برنامه Android شما در Android و برنامه com.example.ios
در iOS باز می شود:
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
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();
برای ایجاد یک پیوند پویا کوتاه، به همین ترتیب یک DynamicLink
بسازید و سپس buildShortDynamicLink
را فراخوانی کنید. ایجاد یک پیوند کوتاه به تماس شبکه نیاز دارد، بنابراین به جای بازگرداندن مستقیم پیوند، buildShortDynamicLink
یک Task
را برمیگرداند که پس از تکمیل درخواست، پیوند کوتاه را در دسترس قرار میدهد. مثلا:
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.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 // ... } } });
به طور پیشفرض، پیوندهای پویا کوتاه با پسوندهای پیوندی 17 کاراکتری ایجاد میشوند که احتمال حدس زدن یک پیوند پویا معتبر را بسیار بعید میسازد. اگر برای مورد استفاده شما، حدس زدن موفقیت آمیز یک پیوند کوتاه ضرری ندارد، ممکن است ترجیح دهید پسوندهایی ایجاد کنید که تنها تا زمانی که لازم است منحصر به فرد باشند، که می توانید با ارسال ShortDynamicLink.Suffix.SHORT
به متد buildShortDynamicLink
انجام دهید. :
Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
پارامترهای پیوند پویا
می توانید از Dynamic Link Builder API برای ایجاد پیوندهای پویا با هر یک از پارامترهای پشتیبانی شده استفاده کنید. برای جزئیات به مرجع API مراجعه کنید.
مثال زیر یک پیوند پویا با چند پارامتر مشترک ایجاد می کند:
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!" } }
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 | |
---|---|
setLink | پیوندی که برنامه شما باز خواهد شد. نشانی اینترنتی را مشخص کنید که برنامه شما بتواند آن را مدیریت کند، معمولاً محتوای برنامه یا بارگذاری بار، که منطق خاص برنامه را آغاز می کند (مانند اعتبار دادن به کاربر با یک کوپن یا نمایش صفحه خوش آمدگویی). این پیوند باید یک URL با قالب بندی مناسب باشد، به درستی کدگذاری URL داشته باشد، از HTTP یا HTTPS استفاده کند و نمی تواند پیوند پویا دیگری باشد. |
setDomainUriPrefix | پیشوند URL لینک پویا شما، که می توانید آن را در کنسول Firebase پیدا کنید. یک دامنه Dynamic Link مانند مثالهای زیر است: 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 | پیوندی که وقتی برنامه نصب نشده باشد در iPad باز می شود. برای انجام کاری غیر از نصب برنامه از App Store زمانی که برنامه نصب نشده است، این مورد را مشخص کنید، مانند باز کردن نسخه وب محتوا یا نمایش یک صفحه تبلیغاتی برای برنامه خود. |
setIpadBundleId | شناسه بسته برنامه iOS برای استفاده در iPad برای باز کردن پیوند. برنامه باید از صفحه نمای کلی کنسول Firebase به پروژه شما متصل شود. |
setMinimumVersion | شماره نسخه حداقل نسخه برنامه شما که می تواند پیوند را باز کند. این پرچم پس از باز شدن به برنامه شما منتقل می شود و برنامه شما باید تصمیم بگیرد که با آن چه کاری انجام دهد. |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | اگر روی «1» تنظیم شده است، وقتی پیوند پویا باز شد، از صفحه پیشنمایش برنامه رد شوید و در عوض به برنامه یا فروشگاه هدایت شوید. صفحه پیشنمایش برنامه (به طور پیشفرض فعال است) میتواند کاربران را با باز کردن پیوندهای پویا در برنامهها با اطمینان بیشتری به مناسبترین مقصد بفرستد. با این حال، اگر انتظار دارید پیوند پویا فقط در برنامههایی باز شود که میتوانند لینکهای پویا را بدون این صفحه به طور قابل اعتماد باز کنند، میتوانید با این پارامتر آن را غیرفعال کنید. این پارامتر فقط روی رفتار Dynamic Link در iOS تأثیر می گذارد. |
SocialMetaTagParameters | |
---|---|
setTitle | عنوانی که هنگام اشتراک گذاری پیوند پویا در یک پست اجتماعی استفاده می شود. |
setDescription | توضیحاتی که باید هنگام اشتراک گذاری پیوند پویا در یک پست اجتماعی استفاده شود. |
setImageUrl | نشانی وب یک تصویر مربوط به این پیوند. تصویر باید حداقل 300x200 پیکسل و کمتر از 300 کیلوبایت باشد. |
GoogleAnalyticsParameters | |
---|---|
setSource setMedium setCampaign setTerm setContent | پارامترهای تجزیه و تحلیل گوگل پلی این پارامترها ( utm_source ، utm_medium ، utm_campaign ، utm_term ، utm_content ) به فروشگاه Play منتقل میشوند و همچنین به بار پیوند اضافه میشوند. |
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken | پارامترهای تجزیه و تحلیل iTunes Connect. این پارامترها ( pt , at , ct ) به App Store ارسال می شوند. |
یک پیوند پویا طولانی را کوتاه کنید
برای کوتاه کردن یک پیوند داینامیک طولانی، به جای تنظیم پارامترها با سایر متدهای سازنده، URL پیوند پویا را با استفاده از setLongLink
مشخص کنید:
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.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 // ... } } });