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

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

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

پیش نیازها

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

  1. اضافه کردن فایربیس به پروژه های iOS خود را .
  2. شامل غلاف زیر را در خود Podfile :
    pod 'Firebase/Analytics'
    pod 'Firebase/DynamicLinks'
        
  3. اجرای pod install و باز کردن ایجاد .xcworkspace فایل.
  4. در فایربیس کنسول، باز کردن بخش پویا لینک.
  5. اگر قبلاً شرایط خدمات را نپذیرفته اید و پیشوند URI را برای پیوندهای پویا خود تنظیم کرده اید ، این کار را در صورت درخواست انجام دهید.

    اگر پیشوند URI پیوندهای پویا دارید ، از آن یادداشت کنید. هنگام ایجاد پیوندهای پویا از طریق برنامه نویسی ، باید آن را ارائه دهید.

  6. توصیه می شود: مشخص الگوهای URL مجاز در لینک های عمیق خود را و لینک مجدد. با این کار ، شما از ایجاد پیوندهای پویا که از دامنه شما به سایت هایی که کنترل آنها را ندارید ، هدایت می کنید از احزاب غیر مجاز جلوگیری می کنید. مشاهده اجازه الگوهای URL خاص .
  7. اطمینان حاصل کنید که شناسه App Store برنامه و پیش شماره برنامه App شما در تنظیمات برنامه شما مشخص شده است. برای مشاهده و ویرایش تنظیمات برنامه خود را، به پروژه فایربیس خود بروید صفحه تنظیمات و برنامه iOS خود را انتخاب کنید.

    تأیید کنید که پروژه فایربیس شما به درستی پیکربندی به استفاده از پویا لینک ها در برنامه های iOS خود را با باز کردن apple-app-site-association فایل است که بر روی دامنه پویا لینک خود را میزبانی می شود. فایربیس خواهد خدمت 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 فایل شامل یک مرجع به پیشوند شناسه برنامه برنامه شما و ID بسته نرم افزاری. مثلا:

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

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

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

  1. واردات ماژول فایربیس خود را UIApplicationDelegate :

    سریع

    import Firebase

    هدف-ج

    @import Firebase;
  2. پیکربندی FirebaseApp عنوان مثال مشترک، به طور معمول در برنامه شما application:didFinishLaunchingWithOptions: روش:

    سریع

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

    هدف-ج

    // Use Firebase library to configure APIs
    [FIRApp configure];

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

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

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

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

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

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

سریع

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)")

هدف-ج

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);

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

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

سریع

linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-ج

[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

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

سریع

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)")
}

هدف-ج

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 استفاده کنید. را ببینید API مرجع برای جزئیات بیشتر.

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

سریع

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)")

هدف-ج

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 استفاده کند و نمی تواند پیوند پویای دیگری باشد.

بازسازی domainURIP پیشوند URL Dynamic Link شما ، که می توانید در کنسول Firebase پیدا کنید. پویا لینک به نظر می رسد دامنه مانند مثال زیر:
https://example.com/link
https://example.page.link
DynamicLinkAndroidParameters
fallbackURL پیوندی که هنگام نصب برنامه باز نمی شود. این کار را برای انجام کاری غیر از نصب برنامه خود از فروشگاه Play در مواقعی که برنامه نصب نشده است انجام دهید ، مانند باز کردن نسخه وب موبایل محتوا یا نمایش یک صفحه تبلیغاتی برای برنامه خود.
حداقل نسخه versionCode از نسخه حداقل از برنامه شما که می توانید از لینک را باز کنید. اگر برنامه نصب شده نسخه قدیمی باشد ، کاربر برای ارتقاء برنامه به فروشگاه Play منتقل می شود.
DynamicLinkIOS پارامترها
appStoreID شناسه App Store برنامه شما ، برای ارسال کاربران به App Store زمانی که برنامه نصب نشده است استفاده می شود
fallbackURL پیوندی که هنگام نصب برنامه باز نمی شود. این کار را برای انجام کاری غیر از نصب برنامه خود از App Store در زمانی که برنامه نصب نشده است انجام دهید ، مانند باز کردن نسخه وب موبایل محتوا یا نمایش یک صفحه تبلیغاتی برای برنامه خود.
CustomScheme برنامه URL سفارشی برنامه شما ، اگر چیزی غیر از شناسه بسته برنامه شما باشد
iPadFallbackURL پیوند برای باز کردن در iPads زمانی که برنامه نصب نشده است. این کار را برای انجام کاری غیر از نصب برنامه خود از App Store در زمانی که برنامه نصب نشده است انجام دهید ، مانند باز کردن نسخه وب محتوا یا نمایش یک صفحه تبلیغاتی برای برنامه خود.
iPadBundleID شناسه بسته نرم افزاری iOS برای استفاده در iPads برای باز کردن پیوند. برنامه باید از صفحه نمای کلی کنسول Firebase به پروژه شما متصل شود.
minimumAppVersion شماره نسخه از نسخه حداقل از برنامه شما که می توانید از لینک را باز کنید. این پرچم هنگام باز شدن به برنامه شما منتقل می شود و برنامه شما باید تصمیم بگیرد که با آن چکار کند.
DynamicLinkNavigationInfoParameters
forceRedirectEnabled اگر روی "1" تنظیم شده است ، با باز شدن پیوند پویا صفحه پیش نمایش برنامه را رد کنید و در عوض به برنامه یا فروشگاه هدایت کنید. هنگامی که پیوندهای پویا را در برنامه ها باز می کنند ، صفحه پیش نمایش برنامه (به طور پیش فرض فعال است) می تواند با اطمینان بیشتری کاربران را به مناسب ترین مقصد بفرستد. با این حال ، اگر انتظار دارید پیوند پویا فقط در برنامه هایی باز شود که می توانند بدون این صفحه پیوندهای پویا را با اطمینان باز کنند ، می توانید آن را با این پارامتر غیرفعال کنید. این پارامتر روی رفتار Dynamic Link فقط در iOS تأثیر می گذارد.
DynamicLinkSocialMetaTagParameters
عنوان عنوان مورد استفاده برای زمانی که پیوند پویا در یک پست اجتماعی به اشتراک گذاشته می شود.
توضیحات متن توضیحاتی که هنگام به اشتراک گذاشتن پیوند پویا در یک پست اجتماعی استفاده می شود.
imageURL آدرس یک تصویر مربوط به این پیوند. تصویر باید حداقل 300x200 پیکسل و کمتر از 300 کیلوبایت باشد.
DynamicLinkGoogleAnalyticsParameters
منبع
متوسط
پویش
مدت، اصطلاح
محتوا
پارامترهای تجزیه و تحلیل Google Play. این پارامترها ( utm_source ، utm_medium ، utm_campaign ، utm_term ، utm_content ) در به فروشگاه Play و همچنین به محموله لینک اضافه به تصویب رسید.
DynamicLinkItunesConnectAnalyticsParameters
ارائه دهندهToken
affiliateToken
campaignToken
iTunes متصل پارامترهای تجزیه و تحلیل. این پارامترها ( pt ، at ، ct ) به فروشگاه App منتقل می شود.

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

سریع

DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

هدف-ج

[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 سفارشی مشابه برای پیوندهای پویا خود نیز استفاده کنند. اگر در این وضعیت هستید ، می توانید با دنبال کردن این مراحل ، یک طرح URL متفاوت برای پیوندهای پویای Firebase خود تعیین کنید:

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

    سریع

    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
    }
    

    هدف-ج

    - (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. هر زمان که پیوند پویا ایجاد می کنید ، باید طرح URL سفارشی که برنامه شما استفاده می کند را مشخص کنید. شما می توانید این طریق کنسول فایربیس انجام دهید، تنظیم customScheme در API ساز، تعیین ius پارامتر در آدرس خود را، و یا ارسال iosCustomScheme پارامتر به API بقیه

مراحل بعدی

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

برای دریافت پویا لینک ها در برنامه شما، اسناد و مدارک برای دیدن در iOS ، آندروید ، C ++ ، و وحدت .