ایجاد لینک های پویا در iOS

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

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

پیش نیازها

قبل از شروع، مطمئن شوید که Firebase را به پروژه iOS خود اضافه کنید .

برای نصب و مدیریت وابستگی های Firebase از Swift Package Manager استفاده کنید.

  1. در Xcode، با باز بودن پروژه برنامه، به File > Add Packages بروید.
  2. هنگامی که از شما خواسته شد، مخزن SDK پلتفرم های Apple Firebase را اضافه کنید:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. کتابخانه Dynamic Links را انتخاب کنید.
  5. پرچم -ObjC را به بخش Other Linker Flags تنظیمات ساخت هدف خود اضافه کنید.
  6. برای تجربه بهینه با Dynamic Links ، توصیه می‌کنیم Google Analytics در پروژه Firebase خود فعال کنید و Firebase SDK برای Google Analytics را به برنامه خود اضافه کنید. شما می توانید کتابخانه را بدون مجموعه IDFA یا با مجموعه IDFA انتخاب کنید.
  7. پس از اتمام، Xcode به طور خودکار شروع به حل و دانلود وابستگی های شما در پس زمینه می کند.

اکنون، چند مرحله پیکربندی را انجام دهید:

  1. در کنسول Firebase ، بخش Dynamic Links را باز کنید.
  2. اگر قبلاً شرایط خدمات را نپذیرفته اید و یک پیشوند URI برای Dynamic Links خود تنظیم نکرده اید، وقتی از شما خواسته شد این کار را انجام دهید.

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

  3. توصیه شده : الگوهای URL مجاز در پیوندهای عمیق و پیوندهای بازگشتی خود را مشخص کنید. با انجام این کار، از ایجاد Dynamic Links توسط اشخاص غیرمجاز که از دامنه شما به سایت هایی که تحت کنترل شما نیستند هدایت می شوند، جلوگیری می کنید. به اجازه الگوهای URL خاص مراجعه کنید.
  4. مطمئن شوید که شناسه App Store برنامه و پیشوند App ID شما در تنظیمات برنامه شما مشخص شده باشد. برای مشاهده و ویرایش تنظیمات برنامه خود، به صفحه تنظیمات پروژه Firebase خود بروید و برنامه iOS خود را انتخاب کنید.

    با باز کردن فایل apple-app-site-association که در دامنه Dynamic Links میزبانی می شود، تأیید کنید که پروژه Firebase شما برای استفاده از Dynamic Links در برنامه iOS شما به درستی پیکربندی شده است. Firebase فایل apple-app-site-association را از ریشه دامنه و همچنین زیر شاخه .well-known ارائه می دهد. به عنوان مثال:

        https://example.com/apple-app-site-association
        https://example.com/.well-known/apple-app-site-association
        

    اگر برنامه شما متصل است، فایل apple-app-site-association حاوی ارجاعی به پیشوند شناسه برنامه و شناسه بسته برنامه شما است. به عنوان مثال:

    {"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}

    اگر ویژگی details خالی است، دوباره بررسی کنید که پیشوند App ID خود را مشخص کرده اید. توجه داشته باشید که پیشوند شناسه برنامه شما ممکن است با شناسه تیم شما یکی نباشد.

Firebase را به برنامه خود اضافه کنید

  1. ماژول FirebaseCore را در UIApplicationDelegate خود و همچنین هر ماژول Firebase دیگری که نماینده برنامه شما استفاده می‌کند، وارد کنید. به عنوان مثال، برای استفاده از Cloud Firestore و Authentication :

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    سویفت

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    هدف-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. یک نمونه اشتراک‌گذاری شده FirebaseApp در روش application(_:didFinishLaunchingWithOptions:) پیکربندی کنید:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    سویفت

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    هدف-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. اگر از SwiftUI استفاده می‌کنید، باید یک نماینده برنامه ایجاد کنید و آن را از طریق UIApplicationDelegateAdaptor یا NSApplicationDelegateAdaptor به ساختار App خود متصل کنید. همچنین باید swizzling نمایندگی برنامه را غیرفعال کنید. برای اطلاعات بیشتر، دستورالعمل های SwiftUI را ببینید.

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          

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

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

از iOS Builder API استفاده کنید

می‌توانید از iOS Builder API برای ایجاد Dynamic Links از روی پارامترها یا کوتاه کردن یک Dynamic Link طولانی استفاده کنید.

برای ایجاد یک Dynamic Link ، یک شیء DynamicLinkComponents جدید ایجاد کنید و با تنظیم ویژگی‌های مربوط به شی، پارامترهای Dynamic Link را مشخص کنید. سپس، پیوند طولانی را از ویژگی url شی دریافت کنید یا با فراخوانی shorten() پیوند کوتاه را دریافت کنید.

مثال حداقلی زیر یک Dynamic Link طولانی به https://www.example.com/my-page ایجاد می کند که با برنامه iOS شما در iOS و برنامه com.example.android در Android باز می شود:

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
guard let link = URL(string: "https://www.example.com/my-page") else { return }
let dynamicLinksDomainURIPrefix = "https://example.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPRefix)
linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios")
linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android")

guard let longDynamicLink = linkBuilder.url else { return }
print("The long URL is: \(longDynamicLink)")

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"];
NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link";
FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc]
                                         initWithLink:link
                                               domainURIPrefix:dynamicLinksDomainURIPrefix];
linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc]
                             initWithBundleID:@"com.example.ios"];
linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc]
                                 initWithPackageName:@"com.example.android"];

NSLog(@"The long URL is: %@", linkBuilder.url);

برای ایجاد یک Dynamic Link کوتاه، یک DynamicLinkComponents را به همین ترتیب بسازید و سپس shorten() را فراخوانی کنید.

ساختن یک لینک کوتاه به تماس شبکه نیاز دارد، بنابراین به جای بازگرداندن مستقیم لینک، shorten() یک کنترل کننده تکمیل را می پذیرد که پس از تکمیل درخواست فراخوانی می شود. به عنوان مثال:

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

به‌طور پیش‌فرض، Dynamic Links کوتاه با پسوندهای پیوندی 17 کاراکتری ایجاد می‌شوند که احتمال اینکه کسی نتواند یک Dynamic Link معتبر را حدس بزند بسیار بعید می‌سازد. اگر برای مورد استفاده شما، هیچ ضرری در حدس زدن موفقیت آمیز یک پیوند کوتاه وجود ندارد، ممکن است ترجیح دهید پسوندهایی ایجاد کنید که تنها تا زمانی که لازم است منحصر به فرد باشند، که می توانید با تنظیم ویژگی dynamicLinkComponentsOptions این کار را انجام دهید:

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
linkBuilder.options = DynamicLinkComponentsOptions()
linkBuilder.options.pathLength = .short
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
linkBuilder.dynamicLinkComponentsOptions = [[FIRDynamicLinkComponentsOptions alloc] init];
linkBuilder.dynamicLinkComponentsOptions.pathLength = FIRShortDynamicLinkPathLengthShort;
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

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

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

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
guard let link = URL(string: "https://www.example.com/my-page") else { return }
let dynamicLinksDomainURIPrefix = "https://example.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPRefix: dynamicLinksDomainURIPrefix)

linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios")
linkBuilder.iOSParameters.appStoreID = "123456789"
linkBuilder.iOSParameters.minimumAppVersion = "1.2.3"

linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android")
linkBuilder.androidParameters.minimumVersion = 123

linkBuilder.analyticsParameters = DynamicLinkGoogleAnalyticsParameters(source: "orkut",
                                                                       medium: "social",
                                                                       campaign: "example-promo")

linkBuilder.iTunesConnectParameters = DynamicLinkItunesConnectAnalyticsParameters()
linkBuilder.iTunesConnectParameters.providerToken = "123456"
linkBuilder.iTunesConnectParameters.campaignToken = "example-promo"

linkBuilder.socialMetaTagParameters = DynamicLinkSocialMetaTagParameters()
linkBuilder.socialMetaTagParameters.title = "Example of a Dynamic Link"
linkBuilder.socialMetaTagParameters.descriptionText = "This link works whether the app is installed or not!"
linkBuilder.socialMetaTagParameters.imageURL = "https://www.example.com/my-image.jpg"

guard let longDynamicLink = linkBuilder.url else { return }
print("The long URL is: \(longDynamicLink)")

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"];
NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link";
FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc]
                                         initWithLink:link
                                         domainURIPrefix:dynamicLinksDomainURIPrefix];

linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc]
                             initWithBundleID:@"com.example.ios"];
linkBuilder.iOSParameters.appStoreID = @"123456789";
linkBuilder.iOSParameters.minimumAppVersion = @"1.2.3";

linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc]
                                 initWithPackageName:@"com.example.android"];
linkBuilder.androidParameters.minimumVersion = 123;

linkBuilder.analyticsParameters = [[FIRDynamicLinkGoogleAnalyticsParameters alloc]
                                   initWithSource:@"orkut"
                                           medium:@"social"
                                         campaign:@"example-promo"];

linkBuilder.iTunesConnectParameters = [[FIRDynamicLinkItunesConnectAnalyticsParameters alloc] init];
linkBuilder.iTunesConnectParameters.providerToken = @"123456";
linkBuilder.iTunesConnectParameters.campaignToken = @"example-promo";

linkBuilder.socialMetaTagParameters = [[FIRDynamicLinkSocialMetaTagParameters alloc] init];
linkBuilder.socialMetaTagParameters.title = @"Example of a Dynamic Link";
linkBuilder.socialMetaTagParameters.descriptionText = @"This link works whether the app is installed or not!";
linkBuilder.socialMetaTagParameters.imageURL = @"https://www.example.com/my-image.jpg";

NSLog(@"The long URL is: %@", linkBuilder.url);

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

DynamicLinkComponents
پیوند

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

دامنهURIPrefix پیشوند URL Dynamic Link شما، که می توانید آن را در کنسول Firebase پیدا کنید. یک دامنه Dynamic Link مانند مثال های زیر است:
https://example.com/link
https://example.page.link
DynamicLinkAndroidParameters
fallbackURL پیوندی که وقتی برنامه نصب نشده باشد باز می شود. این را برای انجام کاری غیر از نصب برنامه خود از فروشگاه Play در زمانی که برنامه نصب نشده است مشخص کنید، مانند باز کردن نسخه وب تلفن همراه محتوا، یا نمایش یک صفحه تبلیغاتی برای برنامه شما.
حداقل نسخه versionCode حداقل نسخه برنامه شما که می تواند پیوند را باز کند. اگر برنامه نصب‌شده نسخه قدیمی‌تر باشد، کاربر برای ارتقای برنامه به فروشگاه Play منتقل می‌شود.
DynamicLinkIOSparameters
appStoreID شناسه App Store برنامه شما، برای ارسال کاربران به App Store زمانی که برنامه نصب نشده باشد استفاده می‌شود
fallbackURL پیوندی که وقتی برنامه نصب نشده باشد باز می شود. این را برای انجام کاری غیر از نصب برنامه از App Store در زمانی که برنامه نصب نشده است مشخص کنید، مانند باز کردن نسخه وب موبایل محتوا یا نمایش صفحه تبلیغاتی برای برنامه خود.
طرح سفارشی طرح URL سفارشی برنامه شما، اگر چیزی غیر از شناسه بسته برنامه شما تعریف شده باشد
iPadFallbackURL پیوندی که وقتی برنامه نصب نشده باشد در iPad باز می شود. برای انجام کاری غیر از نصب برنامه از App Store زمانی که برنامه نصب نشده است، این مورد را مشخص کنید، مانند باز کردن نسخه وب محتوا یا نمایش یک صفحه تبلیغاتی برای برنامه خود.
iPadBundleID شناسه بسته برنامه iOS برای استفاده در iPad برای باز کردن پیوند. برنامه باید از صفحه نمای کلی کنسول Firebase به پروژه شما متصل شود.
MinimumAppVersion شماره نسخه حداقل نسخه برنامه شما که می تواند پیوند را باز کند. این پرچم پس از باز شدن به برنامه شما منتقل می شود و برنامه شما باید تصمیم بگیرد که با آن چه کاری انجام دهد.
DynamicLinkNavigationInfoParameters
forcedRedirectEnabled اگر روی «1» تنظیم شده است، وقتی Dynamic Link باز شد، از صفحه پیش‌نمایش برنامه رد شوید و در عوض به برنامه یا فروشگاه هدایت شوید. صفحه پیش‌نمایش برنامه (به طور پیش‌فرض فعال است) می‌تواند کاربران را با باز کردن Dynamic Links در برنامه‌ها با اطمینان بیشتری به مناسب‌ترین مقصد بفرستد. با این حال، اگر انتظار دارید Dynamic Link فقط در برنامه‌هایی باز شود که می‌توانند Dynamic Links بدون این صفحه به طور قابل اعتماد باز کنند، می‌توانید با این پارامتر آن را غیرفعال کنید. این پارامتر فقط روی رفتار Dynamic Link در iOS تأثیر می گذارد.
DynamicLinkSocialMetaTagParameters
عنوان عنوانی که هنگام اشتراک گذاری Dynamic Link در یک پست اجتماعی استفاده می شود.
توضیحاتمتن توضیحاتی که باید هنگام اشتراک گذاری Dynamic Link در یک پست اجتماعی استفاده شود.
imageURL نشانی وب یک تصویر مربوط به این پیوند. تصویر باید حداقل 300x200 پیکسل و کمتر از 300 کیلوبایت باشد.
DynamicLinkGoogleAnalyticsParameters
منبع
متوسط
کمپین
مدت
محتوا
پارامترهای تجزیه و تحلیل گوگل پلی این پارامترها ( utm_source ، utm_medium ، utm_campaign ، utm_term ، utm_content ) به فروشگاه Play منتقل می‌شوند و همچنین به بار پیوند اضافه می‌شوند.
DynamicLinkItunesConnectAnalyticsParameters
ارائه دهنده توکن
affiliateToken
CampaignToken
پارامترهای تجزیه و تحلیل iTunes Connect. این پارامترها ( pt , at , ct ) به App Store ارسال می شوند.

برای کوتاه کردن یک Dynamic Link طولانی، اگر می‌خواهید پیوندی با پسوند کوتاه ایجاد کنید Dynamic Link طولانی را به shortenURL(url:options:) همراه با یک شی DynamicLinkComponentsOptions ارسال کنید:

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
[FIRDynamicLinkComponents shortenURL:longLinkUrl
                             options:nil
                          completion:^(NSURL * _Nullable shortURL,
                                       NSArray<NSString *> * _Nullable warnings,
                                       NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];

به طور پیش‌فرض، Dynamic Links از شناسه بسته برنامه شما به عنوان طرح URL مورد نیاز برای باز کردن برنامه شما استفاده می‌کند. توصیه می‌کنیم این مقدار پیش‌فرض را حفظ کنید تا پیاده‌سازی خود را ساده نگه دارید.

با این حال، توسعه دهندگانی که در حال حاضر از یک طرح URL سفارشی برای اهداف دیگر استفاده می کنند، ممکن است بخواهند از همین طرح URL سفارشی برای Dynamic Links خود نیز استفاده کنند. اگر در این شرایط هستید، می‌توانید با دنبال کردن این مراحل، یک طرح URL متفاوت برای Firebase Dynamic Links خود تعیین کنید:

  1. هنگام راه‌اندازی برنامه‌تان، قبل از پیکربندی نمونه اشتراک‌گذاری شده FirebaseApp ، حتماً طرح URL پیش‌فرض را برای استفاده توسط برنامه خود مشخص کنید:

    سویفت

    توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplication
                       .LaunchOptionsKey: Any]?) -> Bool {
      // Set deepLinkURLScheme to the custom URL scheme you defined in your
      // Xcode project.
      FirebaseOptions.defaultOptions()?.deepLinkURLScheme = customURLScheme
      FirebaseApp.configure()
    
      return true
    }

    هدف-C

    توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
    - (BOOL)application:(UIApplication *)application
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      // Set deepLinkURLScheme to the custom URL scheme you defined in your
      // Xcode project.
      [FIROptions defaultOptions].deepLinkURLScheme = CUSTOM_URL_SCHEME;
      [FIRApp configure];
    
      return YES;
    }
  2. هر زمان که Dynamic Link ایجاد می‌کنید، باید طرح URL سفارشی که برنامه شما استفاده می‌کند را مشخص کنید. می توانید این کار را از طریق کنسول Firebase انجام دهید، customScheme در Builder API تعیین کنید، پارامتر ius را در URL خود مشخص کنید، یا پارامتر iosCustomScheme را به REST API ارسال کنید.

مراحل بعدی

اکنون که Dynamic Links ایجاد کرده اید، باید برنامه خود را طوری تنظیم کنید که Dynamic Links دریافت کند و پس از باز کردن کاربر، کاربران را به مکان مناسب در برنامه خود بفرستید.

برای دریافت Dynamic Links در برنامه خود، به اسناد iOS ، Android ، C++ و Unity مراجعه کنید.

،

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

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

پیش نیازها

قبل از شروع، مطمئن شوید که Firebase را به پروژه iOS خود اضافه کنید .

برای نصب و مدیریت وابستگی های Firebase از Swift Package Manager استفاده کنید.

  1. در Xcode، با باز بودن پروژه برنامه، به File > Add Packages بروید.
  2. هنگامی که از شما خواسته شد، مخزن SDK پلتفرم های Apple Firebase را اضافه کنید:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. کتابخانه Dynamic Links را انتخاب کنید.
  5. پرچم -ObjC را به بخش Other Linker Flags تنظیمات ساخت هدف خود اضافه کنید.
  6. برای تجربه بهینه با Dynamic Links ، توصیه می‌کنیم Google Analytics در پروژه Firebase خود فعال کنید و Firebase SDK برای Google Analytics را به برنامه خود اضافه کنید. شما می توانید کتابخانه را بدون مجموعه IDFA یا با مجموعه IDFA انتخاب کنید.
  7. پس از اتمام، Xcode به طور خودکار شروع به حل و دانلود وابستگی های شما در پس زمینه می کند.

اکنون، چند مرحله پیکربندی را انجام دهید:

  1. در کنسول Firebase ، بخش Dynamic Links را باز کنید.
  2. اگر قبلاً شرایط خدمات را نپذیرفته اید و یک پیشوند URI برای Dynamic Links خود تنظیم نکرده اید، وقتی از شما خواسته شد این کار را انجام دهید.

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

  3. توصیه شده : الگوهای URL مجاز در پیوندهای عمیق و پیوندهای بازگشتی خود را مشخص کنید. با انجام این کار، از ایجاد Dynamic Links توسط اشخاص غیرمجاز که از دامنه شما به سایت هایی که تحت کنترل شما نیستند هدایت می شوند، جلوگیری می کنید. به اجازه الگوهای URL خاص مراجعه کنید.
  4. مطمئن شوید که شناسه App Store برنامه و پیشوند App ID شما در تنظیمات برنامه شما مشخص شده باشد. برای مشاهده و ویرایش تنظیمات برنامه خود، به صفحه تنظیمات پروژه Firebase خود بروید و برنامه iOS خود را انتخاب کنید.

    با باز کردن فایل apple-app-site-association که در دامنه Dynamic Links میزبانی می شود، تأیید کنید که پروژه Firebase شما برای استفاده از Dynamic Links در برنامه iOS شما به درستی پیکربندی شده است. Firebase فایل apple-app-site-association را از ریشه دامنه و همچنین زیر شاخه .well-known ارائه می دهد. به عنوان مثال:

        https://example.com/apple-app-site-association
        https://example.com/.well-known/apple-app-site-association
        

    اگر برنامه شما متصل است، فایل apple-app-site-association حاوی ارجاعی به پیشوند شناسه برنامه و شناسه بسته برنامه شما است. به عنوان مثال:

    {"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}

    اگر ویژگی details خالی است، دوباره بررسی کنید که پیشوند App ID خود را مشخص کرده اید. توجه داشته باشید که پیشوند شناسه برنامه شما ممکن است با شناسه تیم شما یکی نباشد.

Firebase را به برنامه خود اضافه کنید

  1. ماژول FirebaseCore را در UIApplicationDelegate خود و همچنین هر ماژول Firebase دیگری که نماینده برنامه شما استفاده می‌کند، وارد کنید. به عنوان مثال، برای استفاده از Cloud Firestore و Authentication :

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    سویفت

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    هدف-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. یک نمونه اشتراک‌گذاری شده FirebaseApp در روش application(_:didFinishLaunchingWithOptions:) پیکربندی کنید:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    سویفت

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    هدف-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. اگر از SwiftUI استفاده می‌کنید، باید یک نماینده برنامه ایجاد کنید و آن را از طریق UIApplicationDelegateAdaptor یا NSApplicationDelegateAdaptor به ساختار App خود متصل کنید. همچنین باید swizzling نمایندگی برنامه را غیرفعال کنید. برای اطلاعات بیشتر، دستورالعمل های SwiftUI را ببینید.

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          

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

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

از iOS Builder API استفاده کنید

می‌توانید از iOS Builder API برای ایجاد Dynamic Links از روی پارامترها یا کوتاه کردن یک Dynamic Link طولانی استفاده کنید.

برای ایجاد یک Dynamic Link ، یک شیء DynamicLinkComponents جدید ایجاد کنید و با تنظیم ویژگی‌های مربوط به شی، پارامترهای Dynamic Link را مشخص کنید. سپس، پیوند طولانی را از ویژگی url شی دریافت کنید یا با فراخوانی shorten() پیوند کوتاه را دریافت کنید.

مثال حداقلی زیر یک Dynamic Link طولانی به https://www.example.com/my-page ایجاد می کند که با برنامه iOS شما در iOS و برنامه com.example.android در Android باز می شود:

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
guard let link = URL(string: "https://www.example.com/my-page") else { return }
let dynamicLinksDomainURIPrefix = "https://example.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPRefix)
linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios")
linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android")

guard let longDynamicLink = linkBuilder.url else { return }
print("The long URL is: \(longDynamicLink)")

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"];
NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link";
FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc]
                                         initWithLink:link
                                               domainURIPrefix:dynamicLinksDomainURIPrefix];
linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc]
                             initWithBundleID:@"com.example.ios"];
linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc]
                                 initWithPackageName:@"com.example.android"];

NSLog(@"The long URL is: %@", linkBuilder.url);

برای ایجاد یک Dynamic Link کوتاه، یک DynamicLinkComponents را به همین ترتیب بسازید و سپس shorten() را فراخوانی کنید.

ساختن یک لینک کوتاه به تماس شبکه نیاز دارد، بنابراین به جای بازگرداندن مستقیم لینک، shorten() یک کنترل کننده تکمیل را می پذیرد که پس از تکمیل درخواست فراخوانی می شود. به عنوان مثال:

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

به‌طور پیش‌فرض، Dynamic Links کوتاه با پسوندهای پیوندی 17 کاراکتری ایجاد می‌شوند که احتمال اینکه کسی نتواند یک Dynamic Link معتبر را حدس بزند بسیار بعید می‌سازد. اگر برای مورد استفاده شما، هیچ ضرری در حدس زدن موفقیت آمیز یک پیوند کوتاه وجود ندارد، ممکن است ترجیح دهید پسوندهایی ایجاد کنید که تنها تا زمانی که لازم است منحصر به فرد باشند، که می توانید با تنظیم ویژگی dynamicLinkComponentsOptions این کار را انجام دهید:

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
linkBuilder.options = DynamicLinkComponentsOptions()
linkBuilder.options.pathLength = .short
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
linkBuilder.dynamicLinkComponentsOptions = [[FIRDynamicLinkComponentsOptions alloc] init];
linkBuilder.dynamicLinkComponentsOptions.pathLength = FIRShortDynamicLinkPathLengthShort;
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

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

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

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
guard let link = URL(string: "https://www.example.com/my-page") else { return }
let dynamicLinksDomainURIPrefix = "https://example.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPRefix: dynamicLinksDomainURIPrefix)

linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios")
linkBuilder.iOSParameters.appStoreID = "123456789"
linkBuilder.iOSParameters.minimumAppVersion = "1.2.3"

linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android")
linkBuilder.androidParameters.minimumVersion = 123

linkBuilder.analyticsParameters = DynamicLinkGoogleAnalyticsParameters(source: "orkut",
                                                                       medium: "social",
                                                                       campaign: "example-promo")

linkBuilder.iTunesConnectParameters = DynamicLinkItunesConnectAnalyticsParameters()
linkBuilder.iTunesConnectParameters.providerToken = "123456"
linkBuilder.iTunesConnectParameters.campaignToken = "example-promo"

linkBuilder.socialMetaTagParameters = DynamicLinkSocialMetaTagParameters()
linkBuilder.socialMetaTagParameters.title = "Example of a Dynamic Link"
linkBuilder.socialMetaTagParameters.descriptionText = "This link works whether the app is installed or not!"
linkBuilder.socialMetaTagParameters.imageURL = "https://www.example.com/my-image.jpg"

guard let longDynamicLink = linkBuilder.url else { return }
print("The long URL is: \(longDynamicLink)")

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"];
NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link";
FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc]
                                         initWithLink:link
                                         domainURIPrefix:dynamicLinksDomainURIPrefix];

linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc]
                             initWithBundleID:@"com.example.ios"];
linkBuilder.iOSParameters.appStoreID = @"123456789";
linkBuilder.iOSParameters.minimumAppVersion = @"1.2.3";

linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc]
                                 initWithPackageName:@"com.example.android"];
linkBuilder.androidParameters.minimumVersion = 123;

linkBuilder.analyticsParameters = [[FIRDynamicLinkGoogleAnalyticsParameters alloc]
                                   initWithSource:@"orkut"
                                           medium:@"social"
                                         campaign:@"example-promo"];

linkBuilder.iTunesConnectParameters = [[FIRDynamicLinkItunesConnectAnalyticsParameters alloc] init];
linkBuilder.iTunesConnectParameters.providerToken = @"123456";
linkBuilder.iTunesConnectParameters.campaignToken = @"example-promo";

linkBuilder.socialMetaTagParameters = [[FIRDynamicLinkSocialMetaTagParameters alloc] init];
linkBuilder.socialMetaTagParameters.title = @"Example of a Dynamic Link";
linkBuilder.socialMetaTagParameters.descriptionText = @"This link works whether the app is installed or not!";
linkBuilder.socialMetaTagParameters.imageURL = @"https://www.example.com/my-image.jpg";

NSLog(@"The long URL is: %@", linkBuilder.url);

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

DynamicLinkComponents
پیوند

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

دامنهURIPrefix پیشوند URL Dynamic Link شما، که می توانید آن را در کنسول Firebase پیدا کنید. یک دامنه Dynamic Link مانند مثال های زیر است:
https://example.com/link
https://example.page.link
DynamicLinkAndroidParameters
fallbackURL پیوندی که وقتی برنامه نصب نشده باشد باز می شود. این را برای انجام کاری غیر از نصب برنامه خود از فروشگاه Play در زمانی که برنامه نصب نشده است مشخص کنید، مانند باز کردن نسخه وب تلفن همراه محتوا، یا نمایش یک صفحه تبلیغاتی برای برنامه شما.
حداقل نسخه versionCode حداقل نسخه برنامه شما که می تواند پیوند را باز کند. اگر برنامه نصب‌شده نسخه قدیمی‌تر باشد، کاربر برای ارتقای برنامه به فروشگاه Play منتقل می‌شود.
DynamicLinkIOSparameters
appStoreID شناسه App Store برنامه شما، برای ارسال کاربران به App Store زمانی که برنامه نصب نشده باشد استفاده می‌شود
fallbackURL پیوندی که وقتی برنامه نصب نشده باشد باز می شود. این را برای انجام کاری غیر از نصب برنامه از App Store در زمانی که برنامه نصب نشده است مشخص کنید، مانند باز کردن نسخه وب موبایل محتوا یا نمایش صفحه تبلیغاتی برای برنامه خود.
طرح سفارشی طرح URL سفارشی برنامه شما، اگر چیزی غیر از شناسه بسته برنامه شما تعریف شده باشد
iPadFallbackURL پیوندی که وقتی برنامه نصب نشده باشد در iPad باز می شود. برای انجام کاری غیر از نصب برنامه از App Store زمانی که برنامه نصب نشده است، این مورد را مشخص کنید، مانند باز کردن نسخه وب محتوا یا نمایش یک صفحه تبلیغاتی برای برنامه خود.
iPadBundleID شناسه بسته برنامه iOS برای استفاده در iPad برای باز کردن پیوند. برنامه باید از صفحه نمای کلی کنسول Firebase به پروژه شما متصل شود.
MinimumAppVersion شماره نسخه حداقل نسخه برنامه شما که می تواند پیوند را باز کند. این پرچم پس از باز شدن به برنامه شما منتقل می شود و برنامه شما باید تصمیم بگیرد که با آن چه کاری انجام دهد.
DynamicLinkNavigationInfoParameters
forcedRedirectEnabled اگر روی «1» تنظیم شده است، وقتی Dynamic Link باز شد، از صفحه پیش‌نمایش برنامه رد شوید و در عوض به برنامه یا فروشگاه هدایت شوید. صفحه پیش‌نمایش برنامه (به طور پیش‌فرض فعال است) می‌تواند کاربران را با باز کردن Dynamic Links در برنامه‌ها با اطمینان بیشتری به مناسب‌ترین مقصد بفرستد. با این حال، اگر انتظار دارید Dynamic Link فقط در برنامه‌هایی باز شود که می‌توانند Dynamic Links بدون این صفحه به طور قابل اعتماد باز کنند، می‌توانید با این پارامتر آن را غیرفعال کنید. این پارامتر فقط روی رفتار Dynamic Link در iOS تأثیر می گذارد.
DynamicLinkSocialMetaTagParameters
عنوان عنوانی که هنگام اشتراک گذاری Dynamic Link در یک پست اجتماعی استفاده می شود.
توضیحاتمتن توضیحاتی که باید هنگام اشتراک گذاری Dynamic Link در یک پست اجتماعی استفاده شود.
imageURL نشانی وب یک تصویر مربوط به این پیوند. تصویر باید حداقل 300x200 پیکسل و کمتر از 300 کیلوبایت باشد.
DynamicLinkGoogleAnalyticsParameters
منبع
متوسط
کمپین
مدت
محتوا
پارامترهای تجزیه و تحلیل گوگل پلی این پارامترها ( utm_source ، utm_medium ، utm_campaign ، utm_term ، utm_content ) به فروشگاه Play منتقل می‌شوند و همچنین به بار پیوند اضافه می‌شوند.
DynamicLinkItunesConnectAnalyticsParameters
ارائه دهنده توکن
affiliateToken
CampaignToken
پارامترهای تجزیه و تحلیل iTunes Connect. این پارامترها ( pt , at , ct ) به App Store ارسال می شوند.

برای کوتاه کردن یک Dynamic Link طولانی، اگر می‌خواهید پیوندی با پسوند کوتاه ایجاد کنید Dynamic Link طولانی را به shortenURL(url:options:) همراه با یک شی DynamicLinkComponentsOptions ارسال کنید:

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
[FIRDynamicLinkComponents shortenURL:longLinkUrl
                             options:nil
                          completion:^(NSURL * _Nullable shortURL,
                                       NSArray<NSString *> * _Nullable warnings,
                                       NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];

به طور پیش‌فرض، Dynamic Links از شناسه بسته برنامه شما به عنوان طرح URL مورد نیاز برای باز کردن برنامه شما استفاده می‌کند. توصیه می‌کنیم این مقدار پیش‌فرض را حفظ کنید تا پیاده‌سازی خود را ساده نگه دارید.

با این حال، توسعه دهندگانی که در حال حاضر از یک طرح URL سفارشی برای اهداف دیگر استفاده می کنند، ممکن است بخواهند از همین طرح URL سفارشی برای Dynamic Links خود نیز استفاده کنند. اگر در این شرایط هستید، می‌توانید با دنبال کردن این مراحل، یک طرح URL متفاوت برای Firebase Dynamic Links خود تعیین کنید:

  1. هنگام راه‌اندازی برنامه‌تان، قبل از پیکربندی نمونه اشتراک‌گذاری شده FirebaseApp ، حتماً طرح URL پیش‌فرض را برای استفاده توسط برنامه خود مشخص کنید:

    سویفت

    توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplication
                       .LaunchOptionsKey: Any]?) -> Bool {
      // Set deepLinkURLScheme to the custom URL scheme you defined in your
      // Xcode project.
      FirebaseOptions.defaultOptions()?.deepLinkURLScheme = customURLScheme
      FirebaseApp.configure()
    
      return true
    }

    هدف-C

    توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
    - (BOOL)application:(UIApplication *)application
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      // Set deepLinkURLScheme to the custom URL scheme you defined in your
      // Xcode project.
      [FIROptions defaultOptions].deepLinkURLScheme = CUSTOM_URL_SCHEME;
      [FIRApp configure];
    
      return YES;
    }
  2. هر زمان که Dynamic Link ایجاد می‌کنید، باید طرح URL سفارشی که برنامه شما استفاده می‌کند را مشخص کنید. می توانید این کار را از طریق کنسول Firebase انجام دهید، customScheme در Builder API تعیین کنید، پارامتر ius را در URL خود مشخص کنید، یا پارامتر iosCustomScheme را به REST API ارسال کنید.

مراحل بعدی

اکنون که Dynamic Links ایجاد کرده اید، باید برنامه خود را طوری تنظیم کنید که Dynamic Links دریافت کند و پس از باز کردن کاربر، کاربران را به مکان مناسب در برنامه خود بفرستید.

برای دریافت Dynamic Links در برنامه خود، به اسناد iOS ، Android ، C++ و Unity مراجعه کنید.

،

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

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

پیش نیازها

قبل از شروع، مطمئن شوید که Firebase را به پروژه iOS خود اضافه کنید .

برای نصب و مدیریت وابستگی های Firebase از Swift Package Manager استفاده کنید.

  1. در Xcode، با باز بودن پروژه برنامه، به File > Add Packages بروید.
  2. هنگامی که از شما خواسته شد، مخزن SDK پلتفرم های Apple Firebase را اضافه کنید:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. کتابخانه Dynamic Links را انتخاب کنید.
  5. پرچم -ObjC را به بخش Other Linker Flags تنظیمات ساخت هدف خود اضافه کنید.
  6. برای تجربه بهینه با Dynamic Links ، توصیه می‌کنیم Google Analytics در پروژه Firebase خود فعال کنید و Firebase SDK برای Google Analytics را به برنامه خود اضافه کنید. شما می توانید کتابخانه را بدون مجموعه IDFA یا با مجموعه IDFA انتخاب کنید.
  7. پس از اتمام، Xcode به طور خودکار شروع به حل و دانلود وابستگی های شما در پس زمینه می کند.

اکنون، چند مرحله پیکربندی را انجام دهید:

  1. در کنسول Firebase ، بخش Dynamic Links را باز کنید.
  2. اگر قبلاً شرایط خدمات را نپذیرفته اید و یک پیشوند URI برای Dynamic Links خود تنظیم نکرده اید، وقتی از شما خواسته شد این کار را انجام دهید.

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

  3. توصیه شده : الگوهای URL مجاز در پیوندهای عمیق و پیوندهای بازگشتی خود را مشخص کنید. با انجام این کار، از ایجاد Dynamic Links توسط اشخاص غیرمجاز که از دامنه شما به سایت هایی که تحت کنترل شما نیستند هدایت می شوند، جلوگیری می کنید. اجازه دادن به الگوهای URL خاص را ببینید.
  4. مطمئن شوید که شناسه App Store برنامه و پیشوند App ID شما در تنظیمات برنامه شما مشخص شده باشد. برای مشاهده و ویرایش تنظیمات برنامه خود، به صفحه تنظیمات پروژه Firebase خود بروید و برنامه iOS خود را انتخاب کنید.

    با باز کردن فایل apple-app-site-association که در دامنه Dynamic Links میزبانی می شود، تأیید کنید که پروژه Firebase شما برای استفاده از Dynamic Links در برنامه iOS شما به درستی پیکربندی شده است. Firebase فایل apple-app-site-association را از ریشه دامنه و همچنین زیر شاخه .well-known ارائه می دهد. به عنوان مثال:

        https://example.com/apple-app-site-association
        https://example.com/.well-known/apple-app-site-association
        

    اگر برنامه شما متصل است، فایل apple-app-site-association حاوی ارجاعی به پیشوند شناسه برنامه و شناسه بسته برنامه شما است. به عنوان مثال:

    {"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}

    اگر ویژگی details خالی است، دوباره بررسی کنید که پیشوند App ID خود را مشخص کرده اید. توجه داشته باشید که پیشوند شناسه برنامه شما ممکن است با شناسه تیم شما یکی نباشد.

Firebase را به برنامه خود اضافه کنید

  1. ماژول FirebaseCore را در UIApplicationDelegate خود و همچنین هر ماژول Firebase دیگری که نماینده برنامه شما استفاده می‌کند، وارد کنید. به عنوان مثال، برای استفاده از Cloud Firestore و Authentication :

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    سویفت

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    هدف-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. یک نمونه اشتراک‌گذاری شده FirebaseApp در روش application(_:didFinishLaunchingWithOptions:) پیکربندی کنید:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    سویفت

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    هدف-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. اگر از SwiftUI استفاده می‌کنید، باید یک نماینده برنامه ایجاد کنید و آن را از طریق UIApplicationDelegateAdaptor یا NSApplicationDelegateAdaptor به ساختار App خود متصل کنید. همچنین باید swizzling نمایندگی برنامه را غیرفعال کنید. برای اطلاعات بیشتر، دستورالعمل های SwiftUI را ببینید.

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          

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

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

از iOS Builder API استفاده کنید

می‌توانید از iOS Builder API برای ایجاد Dynamic Links از روی پارامترها یا کوتاه کردن یک Dynamic Link طولانی استفاده کنید.

برای ایجاد یک Dynamic Link ، یک شیء DynamicLinkComponents جدید ایجاد کنید و با تنظیم ویژگی‌های مربوط به شی، پارامترهای Dynamic Link را مشخص کنید. سپس، پیوند طولانی را از ویژگی url شی دریافت کنید یا با فراخوانی shorten() پیوند کوتاه را دریافت کنید.

مثال حداقلی زیر یک Dynamic Link طولانی به https://www.example.com/my-page ایجاد می کند که با برنامه iOS شما در iOS و برنامه com.example.android در Android باز می شود:

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
guard let link = URL(string: "https://www.example.com/my-page") else { return }
let dynamicLinksDomainURIPrefix = "https://example.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPRefix)
linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios")
linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android")

guard let longDynamicLink = linkBuilder.url else { return }
print("The long URL is: \(longDynamicLink)")

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"];
NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link";
FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc]
                                         initWithLink:link
                                               domainURIPrefix:dynamicLinksDomainURIPrefix];
linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc]
                             initWithBundleID:@"com.example.ios"];
linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc]
                                 initWithPackageName:@"com.example.android"];

NSLog(@"The long URL is: %@", linkBuilder.url);

برای ایجاد یک Dynamic Link کوتاه، یک DynamicLinkComponents را به همین ترتیب بسازید و سپس shorten() را فراخوانی کنید.

ساختن یک لینک کوتاه به تماس شبکه نیاز دارد، بنابراین به جای بازگرداندن مستقیم لینک، shorten() یک کنترل کننده تکمیل را می پذیرد که پس از تکمیل درخواست فراخوانی می شود. به عنوان مثال:

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

به‌طور پیش‌فرض، Dynamic Links کوتاه با پسوندهای پیوندی 17 کاراکتری ایجاد می‌شوند که احتمال اینکه کسی نتواند یک Dynamic Link معتبر را حدس بزند بسیار بعید می‌سازد. اگر برای مورد استفاده شما، هیچ ضرری در حدس زدن موفقیت آمیز یک پیوند کوتاه وجود ندارد، ممکن است ترجیح دهید پسوندهایی ایجاد کنید که تنها تا زمانی که لازم است منحصر به فرد باشند، که می توانید با تنظیم ویژگی dynamicLinkComponentsOptions این کار را انجام دهید:

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
linkBuilder.options = DynamicLinkComponentsOptions()
linkBuilder.options.pathLength = .short
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
linkBuilder.dynamicLinkComponentsOptions = [[FIRDynamicLinkComponentsOptions alloc] init];
linkBuilder.dynamicLinkComponentsOptions.pathLength = FIRShortDynamicLinkPathLengthShort;
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

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

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

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
guard let link = URL(string: "https://www.example.com/my-page") else { return }
let dynamicLinksDomainURIPrefix = "https://example.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPRefix: dynamicLinksDomainURIPrefix)

linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios")
linkBuilder.iOSParameters.appStoreID = "123456789"
linkBuilder.iOSParameters.minimumAppVersion = "1.2.3"

linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android")
linkBuilder.androidParameters.minimumVersion = 123

linkBuilder.analyticsParameters = DynamicLinkGoogleAnalyticsParameters(source: "orkut",
                                                                       medium: "social",
                                                                       campaign: "example-promo")

linkBuilder.iTunesConnectParameters = DynamicLinkItunesConnectAnalyticsParameters()
linkBuilder.iTunesConnectParameters.providerToken = "123456"
linkBuilder.iTunesConnectParameters.campaignToken = "example-promo"

linkBuilder.socialMetaTagParameters = DynamicLinkSocialMetaTagParameters()
linkBuilder.socialMetaTagParameters.title = "Example of a Dynamic Link"
linkBuilder.socialMetaTagParameters.descriptionText = "This link works whether the app is installed or not!"
linkBuilder.socialMetaTagParameters.imageURL = "https://www.example.com/my-image.jpg"

guard let longDynamicLink = linkBuilder.url else { return }
print("The long URL is: \(longDynamicLink)")

هدف-C

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"];
NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link";
FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc]
                                         initWithLink:link
                                         domainURIPrefix:dynamicLinksDomainURIPrefix];

linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc]
                             initWithBundleID:@"com.example.ios"];
linkBuilder.iOSParameters.appStoreID = @"123456789";
linkBuilder.iOSParameters.minimumAppVersion = @"1.2.3";

linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc]
                                 initWithPackageName:@"com.example.android"];
linkBuilder.androidParameters.minimumVersion = 123;

linkBuilder.analyticsParameters = [[FIRDynamicLinkGoogleAnalyticsParameters alloc]
                                   initWithSource:@"orkut"
                                           medium:@"social"
                                         campaign:@"example-promo"];

linkBuilder.iTunesConnectParameters = [[FIRDynamicLinkItunesConnectAnalyticsParameters alloc] init];
linkBuilder.iTunesConnectParameters.providerToken = @"123456";
linkBuilder.iTunesConnectParameters.campaignToken = @"example-promo";

linkBuilder.socialMetaTagParameters = [[FIRDynamicLinkSocialMetaTagParameters alloc] init];
linkBuilder.socialMetaTagParameters.title = @"Example of a Dynamic Link";
linkBuilder.socialMetaTagParameters.descriptionText = @"This link works whether the app is installed or not!";
linkBuilder.socialMetaTagParameters.imageURL = @"https://www.example.com/my-image.jpg";

NSLog(@"The long URL is: %@", linkBuilder.url);

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

DynamicLinkComponents
پیوند

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

دامنهURIPrefix پیشوند URL Dynamic Link شما، که می توانید آن را در کنسول Firebase پیدا کنید. یک دامنه Dynamic Link مانند مثال های زیر است:
https://example.com/link
https://example.page.link
DynamicLinkAndroidParameters
fallbackURL پیوندی که وقتی برنامه نصب نشده باشد باز می شود. این را برای انجام کاری غیر از نصب برنامه خود از فروشگاه Play در زمانی که برنامه نصب نشده است مشخص کنید، مانند باز کردن نسخه وب تلفن همراه محتوا، یا نمایش یک صفحه تبلیغاتی برای برنامه شما.
حداقل نسخه versionCode حداقل نسخه برنامه شما که می تواند پیوند را باز کند. اگر برنامه نصب‌شده نسخه قدیمی‌تر باشد، کاربر برای ارتقای برنامه به فروشگاه Play منتقل می‌شود.
DynamicLinkIOSPparameters
appStoreID شناسه App Store برنامه شما، برای ارسال کاربران به App Store زمانی که برنامه نصب نشده باشد استفاده می‌شود
fallbackURL پیوندی که وقتی برنامه نصب نشده باشد باز می شود. این را برای انجام کاری غیر از نصب برنامه از App Store در زمانی که برنامه نصب نشده است مشخص کنید، مانند باز کردن نسخه وب موبایل محتوا یا نمایش صفحه تبلیغاتی برای برنامه خود.
طرح سفارشی طرح URL سفارشی برنامه شما، اگر چیزی غیر از شناسه بسته برنامه شما تعریف شده باشد
iPadFallbackURL پیوندی که وقتی برنامه نصب نشده باشد در iPad باز می شود. برای انجام کاری غیر از نصب برنامه از App Store زمانی که برنامه نصب نشده است، این مورد را مشخص کنید، مانند باز کردن نسخه وب محتوا یا نمایش یک صفحه تبلیغاتی برای برنامه خود.
iPadBundleID شناسه بسته برنامه iOS برای استفاده در iPad برای باز کردن پیوند. برنامه باید از صفحه نمای کلی کنسول Firebase به پروژه شما متصل شود.
MinimumAppVersion شماره نسخه حداقل نسخه برنامه شما که می تواند پیوند را باز کند. این پرچم پس از باز شدن به برنامه شما منتقل می شود و برنامه شما باید تصمیم بگیرد که با آن چه کاری انجام دهد.
DynamicLinkNavigationInfoParameters
forcedRedirectEnabled اگر روی «1» تنظیم شده است، وقتی Dynamic Link باز شد، از صفحه پیش‌نمایش برنامه رد شوید و در عوض به برنامه یا فروشگاه هدایت شوید. صفحه پیش‌نمایش برنامه (به طور پیش‌فرض فعال است) می‌تواند کاربران را با باز کردن Dynamic Links در برنامه‌ها با اطمینان بیشتری به مناسب‌ترین مقصد بفرستد. با این حال، اگر انتظار دارید Dynamic Link فقط در برنامه‌هایی باز شود که می‌توانند Dynamic Links بدون این صفحه به طور قابل اعتماد باز کنند، می‌توانید با این پارامتر آن را غیرفعال کنید. این پارامتر فقط روی رفتار Dynamic Link در iOS تأثیر می گذارد.
DynamicLinkSocialMetaTagParameters
عنوان عنوانی که هنگام اشتراک گذاری Dynamic Link در یک پست اجتماعی استفاده می شود.
توضیحاتمتن توضیحاتی که باید هنگام اشتراک گذاری Dynamic Link در یک پست اجتماعی استفاده شود.
imageURL نشانی وب یک تصویر مربوط به این پیوند. تصویر باید حداقل 300x200 پیکسل و کمتر از 300 کیلوبایت باشد.
DynamicLinkGoogleAnalyticsParameters
منبع
متوسط
کمپین
مدت
محتوا
پارامترهای تجزیه و تحلیل گوگل پلی این پارامترها ( utm_source ، utm_medium ، utm_campaign ، utm_term ، utm_content ) به فروشگاه Play منتقل می‌شوند و همچنین به بار پیوند اضافه می‌شوند.
DynamicLinkItunesConnectAnalyticsParameters
ارائه دهنده توکن
affiliateToken
CampaignToken
پارامترهای تجزیه و تحلیل iTunes Connect. این پارامترها ( pt , at , ct ) به App Store ارسال می شوند.

برای کوتاه کردن یک Dynamic Link طولانی، اگر می‌خواهید پیوندی با پسوند کوتاه ایجاد کنید Dynamic Link طولانی را به shortenURL(url:options:) همراه با یک شی DynamicLinkComponentsOptions ارسال کنید:

سویفت

توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، tvOS یا watchOS در دسترس نیست.
DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-C

توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
[FIRDynamicLinkComponents shortenURL:longLinkUrl
                             options:nil
                          completion:^(NSURL * _Nullable shortURL,
                                       NSArray<NSString *> * _Nullable warnings,
                                       NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];

به طور پیش فرض ، Dynamic Links از شناسه بسته نرم افزاری برنامه شما به عنوان طرح URL برای باز کردن برنامه خود استفاده می کنند. توصیه می کنیم با این مقدار پیش فرض بمانید تا اجرای خود ساده باشد.

با این حال ، توسعه دهندگان که در حال حاضر از یک طرح URL سفارشی برای اهداف دیگر استفاده می کنند ، ممکن است بخواهند از همین طرح URL سفارشی برای Dynamic Links خود نیز استفاده کنند. اگر در این شرایط هستید ، می توانید با دنبال کردن این مراحل ، یک طرح URL متفاوتی را برای Firebase Dynamic Links خود مشخص کنید:

  1. هنگام تنظیم برنامه خود ، اطمینان حاصل کنید که قبل از پیکربندی نمونه مشترک FirebaseApp طرح URL پیش فرض را که توسط برنامه خود استفاده می شود ، مشخص کرده اید:

    سویفت

    توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplication
                       .LaunchOptionsKey: Any]?) -> Bool {
      // Set deepLinkURLScheme to the custom URL scheme you defined in your
      // Xcode project.
      FirebaseOptions.defaultOptions()?.deepLinkURLScheme = customURLScheme
      FirebaseApp.configure()
    
      return true
    }

    هدف-C

    توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
    - (BOOL)application:(UIApplication *)application
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      // Set deepLinkURLScheme to the custom URL scheme you defined in your
      // Xcode project.
      [FIROptions defaultOptions].deepLinkURLScheme = CUSTOM_URL_SCHEME;
      [FIRApp configure];
    
      return YES;
    }
  2. هر زمان که Dynamic Link ایجاد کنید ، باید طرح URL سفارشی را که برنامه شما از آن استفاده می کند ، مشخص کنید. شما می توانید این کار را از طریق کنسول Firebase انجام دهید ، customScheme در API سازنده تنظیم کنید ، پارامتر ius را در URL خود مشخص کنید ، یا پارامتر iosCustomScheme را به API REST ارسال کنید

مراحل بعدی

اکنون که Dynamic Links ایجاد کرده اید ، برای دریافت Dynamic Links و ارسال کاربران به جای مناسب در برنامه خود پس از باز شدن کاربر ، باید برنامه خود را تنظیم کنید.

برای دریافت Dynamic Links در برنامه خود ، به اسناد مربوط به iOS ، Android ، C ++ و Unity مراجعه کنید.

،

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

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

پیش نیازها

قبل از شروع ، حتماً Firebase را به پروژه iOS خود اضافه کنید .

برای نصب و مدیریت وابستگی های Firebase از Swift Package Manager استفاده کنید.

  1. در Xcode، با باز بودن پروژه برنامه، به File > Add Packages بروید.
  2. هنگامی که از شما خواسته شد، مخزن SDK پلتفرم های Apple Firebase را اضافه کنید:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. کتابخانه Dynamic Links را انتخاب کنید.
  5. پرچم -ObjC را به بخش Other Linker Flags تنظیمات ساخت هدف خود اضافه کنید.
  6. برای یک تجربه بهینه با Dynamic Links ، توصیه می کنیم Google Analytics در پروژه Firebase خود فعال کنید و SDK Firebase را برای Google Analytics به برنامه خود اضافه کنید. می توانید کتابخانه را بدون مجموعه IDFA یا با مجموعه IDFA انتخاب کنید.
  7. پس از اتمام، Xcode به طور خودکار شروع به حل و دانلود وابستگی های شما در پس زمینه می کند.

اکنون برخی از مراحل پیکربندی را انجام دهید:

  1. در کنسول Firebase ، بخش Dynamic Links را باز کنید.
  2. اگر قبلاً شرایط خدمات را پذیرفته اید و پیشوند URI را برای Dynamic Links خود تعیین کرده اید ، در صورت درخواست این کار را انجام دهید.

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

  3. توصیه می شود : الگوهای URL مجاز در پیوندهای عمیق و پیوندهای برگشتی خود را مشخص کنید. با این کار ، شما از ایجاد Dynamic Links که از دامنه شما به سایتهایی که کنترل نمی کنید ، از احزاب غیرمجاز جلوگیری می کنید. به الگوهای خاص URL اجازه دهید .
  4. اطمینان حاصل کنید که شناسه فروشگاه برنامه برنامه و پیشوند شناسه برنامه شما در تنظیمات برنامه شما مشخص شده است. برای مشاهده و ویرایش تنظیمات برنامه خود ، به صفحه تنظیمات پروژه Firebase خود بروید و برنامه iOS خود را انتخاب کنید.

    تأیید کنید که پروژه Firebase شما به درستی پیکربندی شده است تا با باز کردن پرونده apple-app-site-association که در دامنه Dynamic Links شما میزبان است ، Dynamic Links در برنامه iOS استفاده کنید. Firebase از ریشه دامنه و همچنین زیر مجموعه های .well-known پرونده apple-app-site-association ارائه می دهد. به عنوان مثال:

        https://example.com/apple-app-site-association
        https://example.com/.well-known/apple-app-site-association
        

    اگر برنامه شما به هم متصل است ، پرونده apple-app-site-association حاوی اشاره ای به پیشوند برنامه برنامه شما و شناسه بسته نرم افزاری است. به عنوان مثال:

    {"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}

    اگر خاصیت details خالی است ، دوبار بررسی کنید که پیشوند شناسه برنامه خود را مشخص کرده اید. توجه داشته باشید که پیشوند شناسه برنامه شما ممکن است مشابه شناسه تیم شما نباشد.

Firebase را به برنامه خود اضافه کنید

  1. ماژول FirebaseCore را در UIApplicationDelegate خود وارد کنید ، و همچنین هر ماژول Firebase دیگری که نماینده برنامه شما از آن استفاده می کند. به عنوان مثال ، برای استفاده از Cloud Firestore و Authentication :

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    سویفت

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    هدف-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. یک نمونه مشترک FirebaseApp در application(_:didFinishLaunchingWithOptions:) روش:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    سویفت

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    هدف-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. اگر از Swiftui استفاده می کنید ، باید یک نماینده برنامه ایجاد کرده و آن را از طریق UIApplicationDelegateAdaptor یا NSApplicationDelegateAdaptor به ساختار App خود وصل کنید. شما همچنین باید نماینده برنامه را غیرفعال کنید. برای اطلاعات بیشتر ، به دستورالعمل های Swiftui مراجعه کنید.

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          

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

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

از API سازنده iOS استفاده کنید

شما می توانید از API Builder IOS برای ایجاد Dynamic Links از پارامترها یا کوتاه کردن یک Dynamic Link طولانی استفاده کنید.

برای ایجاد یک Dynamic Link ، یک شیء DynamicLinkComponents جدید ایجاد کنید و با تنظیم خصوصیات مربوطه شیء پارامترهای Dynamic Link را مشخص کنید. سپس پیوند طولانی را از ویژگی url شی دریافت کنید یا با تماس با shorten() پیوند کوتاه را دریافت کنید.

مثال حداقل زیر یک Dynamic Link طولانی به https://www.example.com/my-page ایجاد می کند که با برنامه iOS شما در iOS و برنامه com.example.android در Android باز می شود:

سویفت

توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
guard let link = URL(string: "https://www.example.com/my-page") else { return }
let dynamicLinksDomainURIPrefix = "https://example.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPRefix)
linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios")
linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android")

guard let longDynamicLink = linkBuilder.url else { return }
print("The long URL is: \(longDynamicLink)")

هدف-C

توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"];
NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link";
FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc]
                                         initWithLink:link
                                               domainURIPrefix:dynamicLinksDomainURIPrefix];
linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc]
                             initWithBundleID:@"com.example.ios"];
linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc]
                                 initWithPackageName:@"com.example.android"];

NSLog(@"The long URL is: %@", linkBuilder.url);

برای ایجاد یک Dynamic Link کوتاه ، یک DynamicLinkComponents به همان روش بسازید و سپس با shorten() تماس بگیرید.

ایجاد یک لینک کوتاه نیاز به یک تماس با شبکه دارد ، بنابراین به جای بازگشت مستقیم پیوند ، shorten() یک کنترل کننده تکمیل را می پذیرد ، که با تکمیل درخواست فراخوانی می شود. به عنوان مثال:

سویفت

توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-C

توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

به طور پیش فرض ، Dynamic Links کوتاه با پسوندهای لینک 17 کاراکتر ایجاد می شوند که بسیار بعید است که کسی بتواند یک Dynamic Link معتبر را حدس بزند. اگر برای استفاده شما ، هیچ آسیبی در کسی وجود ندارد که با موفقیت یک لینک کوتاه را حدس بزند ، ممکن است ترجیح دهید پسوندهایی را تولید کنید که فقط تا زمانی که لازم باشد منحصر به فرد باشد ، که می توانید با تنظیم خاصیت dynamicLinkComponentsOptions انجام دهید:

سویفت

توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
linkBuilder.options = DynamicLinkComponentsOptions()
linkBuilder.options.pathLength = .short
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-C

توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
linkBuilder.dynamicLinkComponentsOptions = [[FIRDynamicLinkComponentsOptions alloc] init];
linkBuilder.dynamicLinkComponentsOptions.pathLength = FIRShortDynamicLinkPathLengthShort;
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

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

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

سویفت

توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
guard let link = URL(string: "https://www.example.com/my-page") else { return }
let dynamicLinksDomainURIPrefix = "https://example.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPRefix: dynamicLinksDomainURIPrefix)

linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios")
linkBuilder.iOSParameters.appStoreID = "123456789"
linkBuilder.iOSParameters.minimumAppVersion = "1.2.3"

linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android")
linkBuilder.androidParameters.minimumVersion = 123

linkBuilder.analyticsParameters = DynamicLinkGoogleAnalyticsParameters(source: "orkut",
                                                                       medium: "social",
                                                                       campaign: "example-promo")

linkBuilder.iTunesConnectParameters = DynamicLinkItunesConnectAnalyticsParameters()
linkBuilder.iTunesConnectParameters.providerToken = "123456"
linkBuilder.iTunesConnectParameters.campaignToken = "example-promo"

linkBuilder.socialMetaTagParameters = DynamicLinkSocialMetaTagParameters()
linkBuilder.socialMetaTagParameters.title = "Example of a Dynamic Link"
linkBuilder.socialMetaTagParameters.descriptionText = "This link works whether the app is installed or not!"
linkBuilder.socialMetaTagParameters.imageURL = "https://www.example.com/my-image.jpg"

guard let longDynamicLink = linkBuilder.url else { return }
print("The long URL is: \(longDynamicLink)")

هدف-C

توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"];
NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link";
FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc]
                                         initWithLink:link
                                         domainURIPrefix:dynamicLinksDomainURIPrefix];

linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc]
                             initWithBundleID:@"com.example.ios"];
linkBuilder.iOSParameters.appStoreID = @"123456789";
linkBuilder.iOSParameters.minimumAppVersion = @"1.2.3";

linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc]
                                 initWithPackageName:@"com.example.android"];
linkBuilder.androidParameters.minimumVersion = 123;

linkBuilder.analyticsParameters = [[FIRDynamicLinkGoogleAnalyticsParameters alloc]
                                   initWithSource:@"orkut"
                                           medium:@"social"
                                         campaign:@"example-promo"];

linkBuilder.iTunesConnectParameters = [[FIRDynamicLinkItunesConnectAnalyticsParameters alloc] init];
linkBuilder.iTunesConnectParameters.providerToken = @"123456";
linkBuilder.iTunesConnectParameters.campaignToken = @"example-promo";

linkBuilder.socialMetaTagParameters = [[FIRDynamicLinkSocialMetaTagParameters alloc] init];
linkBuilder.socialMetaTagParameters.title = @"Example of a Dynamic Link";
linkBuilder.socialMetaTagParameters.descriptionText = @"This link works whether the app is installed or not!";
linkBuilder.socialMetaTagParameters.imageURL = @"https://www.example.com/my-image.jpg";

NSLog(@"The long URL is: %@", linkBuilder.url);

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

عوامل پویا
پیوند

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

دامنه دامنه پیشوند URL Dynamic Link شما ، که می توانید در کنسول Firebase پیدا کنید. یک دامنه Dynamic Link مانند مثال های زیر به نظر می رسد:
https://example.com/link
https://example.page.link
dynamiclinkandroidparameters
گندیده هنگام نصب برنامه ، پیوند باز می شود. این کار را برای انجام کاری غیر از نصب برنامه خود از فروشگاه Play هنگام نصب برنامه مشخص کنید ، مانند باز کردن نسخه وب موبایل محتوا ، یا یک صفحه تبلیغاتی برای برنامه خود نمایش دهید.
کمترین versionCode حداقل نسخه برنامه شما که می تواند لینک را باز کند. اگر برنامه نصب شده نسخه قدیمی تر باشد ، کاربر برای به روزرسانی برنامه به فروشگاه Play منتقل می شود.
پویالینیکیوس پارامترها
وابسته به پستان شناسه فروشگاه برنامه برنامه شما ، هنگام نصب برنامه ، برای ارسال کاربران به فروشگاه App استفاده می شود
گندیده هنگام نصب برنامه ، پیوند باز می شود. این کار را برای انجام کاری غیر از نصب برنامه خود از فروشگاه App هنگام نصب برنامه مشخص کنید ، مانند باز کردن نسخه وب موبایل محتوا ، یا یک صفحه تبلیغاتی برای برنامه خود نمایش دهید.
اوج طرح URL سفارشی برنامه شما ، در صورت تعریف چیزی غیر از شناسه بسته نرم افزاری برنامه شما
iPadfallbackurl پیوند برای باز کردن روی iPads هنگام نصب برنامه. این کار را برای انجام کاری غیر از نصب برنامه خود از فروشگاه App هنگام نصب برنامه مشخص کنید ، مانند باز کردن نسخه وب محتوا ، یا یک صفحه تبلیغاتی برای برنامه خود نمایش دهید.
دارای منشور شناسه بسته نرم افزاری برنامه iOS برای استفاده در iPad برای باز کردن لینک. برنامه باید از صفحه نمای کلی کنسول Firebase به پروژه شما وصل شود.
حداقل appversion شماره نسخه حداقل نسخه برنامه شما که می تواند لینک را باز کند. این پرچم هنگام باز شدن به برنامه شما منتقل می شود و برنامه شما باید تصمیم بگیرد که با آن چه کار کند.
insamiclinknavigationinfoparameters
اجباری قابل اجرا اگر روی "1" تنظیم شده اید ، هنگام باز شدن Dynamic Link ، از صفحه پیش نمایش برنامه پرش کنید و در عوض به برنامه یا فروشگاه هدایت شوید. صفحه پیش نمایش برنامه (به طور پیش فرض فعال) می تواند با اطمینان بیشتری کاربران را به مناسب ترین مقصد هنگام باز کردن Dynamic Links در برنامه ها ارسال کند. با این حال ، اگر انتظار دارید Dynamic Link فقط در برنامه هایی باز شود که می توانند Dynamic Links بدون این صفحه باز کنند ، می توانید آن را با این پارامتر غیرفعال کنید. این پارامتر فقط بر رفتار Dynamic Link فقط در iOS تأثیر می گذارد.
پراورامترهای دینامیک لینک و اجتماعی
عنوان عنوان مورد استفاده در هنگام اشتراک Dynamic Link در یک پست اجتماعی.
شرح توضیحی که باید در هنگام اشتراک Dynamic Link در یک پست اجتماعی به اشتراک گذاشته شود.
تصویر URL به یک تصویر مربوط به این لینک. تصویر باید حداقل 300x200 px و کمتر از 300 کیلوبایت باشد.
پارامترهای پویا
منبع
متوسط
کمپین
مدت
محتوا
پارامترهای تجزیه و تحلیل Google Play. این پارامترها ( utm_source ، utm_medium ، utm_campaign ، utm_term ، utm_content ) به فروشگاه Play منتقل می شوند و همچنین به Link Payload اضافه می شوند.
parametsparametsparameticsparameticsparametanaltanalytics
متقاطع
وابسته به شرکتهای وابسته
در مبارزات انتخاباتی و مبارزات انتخاب شده توسط مبارزات انتخاباتی
iTunes Connect Parameters Analytics. این پارامترها ( pt ، at ، ct ) به فروشگاه App منتقل می شوند.

برای کوتاه کردن یک Dynamic Link طولانی ، Dynamic Link طولانی را به shortenURL(url:options:) همراه با یک شیء DynamicLinkComponentsOptions اگر می خواهید پیوندی با پسوند کوتاه ایجاد کنید:

سویفت

توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-C

توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
[FIRDynamicLinkComponents shortenURL:longLinkUrl
                             options:nil
                          completion:^(NSURL * _Nullable shortURL,
                                       NSArray<NSString *> * _Nullable warnings,
                                       NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];

به طور پیش فرض ، Dynamic Links از شناسه بسته نرم افزاری برنامه شما به عنوان طرح URL برای باز کردن برنامه خود استفاده می کنند. توصیه می کنیم با این مقدار پیش فرض بمانید تا اجرای خود ساده باشد.

با این حال ، توسعه دهندگان که در حال حاضر از یک طرح URL سفارشی برای اهداف دیگر استفاده می کنند ، ممکن است بخواهند از همین طرح URL سفارشی برای Dynamic Links خود نیز استفاده کنند. اگر در این شرایط هستید ، می توانید با دنبال کردن این مراحل ، یک طرح URL متفاوتی را برای Firebase Dynamic Links خود مشخص کنید:

  1. هنگام تنظیم برنامه خود ، اطمینان حاصل کنید که قبل از پیکربندی نمونه مشترک FirebaseApp طرح URL پیش فرض را که توسط برنامه خود استفاده می شود ، مشخص کرده اید:

    سویفت

    توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplication
                       .LaunchOptionsKey: Any]?) -> Bool {
      // Set deepLinkURLScheme to the custom URL scheme you defined in your
      // Xcode project.
      FirebaseOptions.defaultOptions()?.deepLinkURLScheme = customURLScheme
      FirebaseApp.configure()
    
      return true
    }

    هدف-C

    توجه: این محصول Firebase در اهداف MacOS ، Mac Catalyst ، TVOS یا WatchOS در دسترس نیست.
    - (BOOL)application:(UIApplication *)application
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      // Set deepLinkURLScheme to the custom URL scheme you defined in your
      // Xcode project.
      [FIROptions defaultOptions].deepLinkURLScheme = CUSTOM_URL_SCHEME;
      [FIRApp configure];
    
      return YES;
    }
  2. هر زمان که Dynamic Link ایجاد کنید ، باید طرح URL سفارشی را که برنامه شما از آن استفاده می کند ، مشخص کنید. شما می توانید این کار را از طریق کنسول Firebase انجام دهید ، customScheme در API سازنده تنظیم کنید ، پارامتر ius را در URL خود مشخص کنید ، یا پارامتر iosCustomScheme را به API REST ارسال کنید

مراحل بعدی

اکنون که Dynamic Links ایجاد کرده اید ، برای دریافت Dynamic Links و ارسال کاربران به جای مناسب در برنامه خود پس از باز شدن کاربر ، باید برنامه خود را تنظیم کنید.

برای دریافت Dynamic Links در برنامه خود ، به مستندات iOS ، Android ، C ++ و Unity مراجعه کنید.