iOS'te Dinamik Bağlantılar oluşturma

Firebase Dynamic Links Builder API ile kısa veya uzun Dinamik Bağlantılar oluşturabilirsiniz. Bu API, uzun bir Dinamik Bağlantı ya da Dinamik Bağlantı içeren bir nesne kabul eder parametrelerini döndürür ve aşağıdaki örneklere benzer URL'leri döndürür:

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

Ön koşullar

Başlamadan önce Firebase'i iOS'e eklediğinizden emin olun inceleyebilirsiniz.

Firebase bağımlılıklarını yükleyip yönetmek için Swift Package Manager'ı kullanın.

  1. Xcode'da, uygulama projeniz açıkken Dosya > Paket Ekle'yi tıklayın.
  2. İstendiğinde Firebase Apple platformlar SDK deposunu ekleyin:
  3.   https://github.com/firebase/firebase-ios-sdk.git
    .
  4. Dynamic Links kitaplığını seçin.
  5. -ObjC işaretini, hedefinizin derleme ayarlarındaki Diğer Bağlayıcı İşaretleri bölümüne ekleyin.
  6. Dinamik Bağlantılar ile optimum deneyim için Google Analytics'i etkinleştirme Firebase projenize ekleyin ve uygulamanıza Google Analytics için Firebase SDK'sını ekleyin. Şunları yapabilirsiniz: IDFA koleksiyonu olmayan veya IDFA koleksiyonu olan kitaplığı seçin.
  7. İşlemi tamamladığınızda, Xcode otomatik olarak arka planda tutmalarını sağlar.

Şimdi bazı yapılandırma adımlarını uygulayın:

  1. Firebase konsolunda Dinamik Bağlantılar bölümünü açın.
  2. Hizmet şartlarını henüz kabul etmediyseniz ve bir URI öneki ayarladıysanız dinamik bağlantılarınız için, istendiğinde bunu yapın.

    Halihazırda bir Dynamic Links URI ön ekiniz varsa bunu not edin. Şunları yapmanız gerekir: programlı bir şekilde Dinamik Bağlantılar oluşturduğunuzda bunu sağlayın.

  3. Önerilen: Derin bağlantılarınızda izin verilen URL kalıplarını belirtin ve yedek bağlantılar. Bu şekilde, yetkisiz tarafların alan adınızdan kontrol etmediğiniz sitelere yönlendiren Dinamik Bağlantılar oluşturarak. Daha fazla bilgi için Belirli URL kalıpları hakkında daha fazla bilgi edinin.
  4. Uygulamanızın App Store Kimliğinin ve Uygulama Kimliği ön ekinizin Ayarlar'da belirtin. Uygulamanızın ayarlarını görüntülemek ve düzenlemek için şu adrese gidin: Firebase projenizin Ayarlar sayfasına gidip iOS uygulamanızı seçin.

    Firebase projenizin doğru kullanım için yapılandırıldığından emin olun iOS uygulamanızda Dynamic Links'i açın Şurada barındırılan apple-app-site-association dosyası: Dynamic Links alan adı. Firebase, Google Analytics 4'te apple-app-site-association dosyası, alan adının yanı sıra .well-known alt dizinini de destekler. Örneğin, örnek:

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

    Uygulamanız bağlıysa apple-app-site-association dosyası bir referans içerir uygulamanızın Uygulama Kimliği ön eki ve paket kimliğine ekleyin. Örneğin:

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

    details özelliği boşsa belirttiğinizi tekrar kontrol edin uygulama kimliği ön ekinizi ekleyin. Uygulama kimliği ön ekinizin, Ekip Kimliğinizle aynı olmayabileceğini unutmayın.

Firebase'i uygulamanıza ekleyin

  1. FirebaseCore modülünü UIApplicationDelegate ve diğer Yetki verdiğiniz uygulamanın kullandığı Firebase modülleri. Örneğin, Cloud Firestore ve Authentication'ı kullanmak için:

    SwiftUI

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

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Şunu yapılandır: FirebaseApp paylaşılan örneğinizin application(_:didFinishLaunchingWithOptions:) yöntemi:

    SwiftUI

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

    Swift

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturup bunu eklemeniz gerekir UIApplicationDelegateAdaptor veyaApp NSApplicationDelegateAdaptor. Uygulama yetkisi kaydırmayı da devre dışı bırakmanız gerekir. Örneğin, daha fazla bilgi için SwiftUI talimatlarına bakın.

    SwiftUI

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

Firebase konsolunu kullanma

Test amacıyla veya pazarlama ekibiniz için tek bir Dinamik Bağlantı oluşturmak istiyorsanız sosyal medya yayını gibi bir yerde kullanılabilecek bir bağlantıyı kolayca oluşturmak, en basit yol Firebase konsolunu ziyaret ederek ve adım adım açıklamalı formu uygulayarak manuel olarak bir tane oluşturun.

iOS Builder API'yi kullanma

Parametrelerden Dinamik Bağlantılar oluşturmak veya ve uzun bir Dinamik Bağlantıyı kısaltın.

Dinamik Bağlantı oluşturmak için yeni bir DynamicLinkComponents nesnesi oluşturun ve buna karşılık gelen nesnenin özellikler. Ardından, nesnenin url konumundan uzun bağlantıyı alın veya shorten() numaralı telefonu arayarak kısa bağlantıyı alın.

Aşağıdaki minimum örnek, her bir URL için uzun bir iOS uygulamanız açıkken açılan https://www.example.com/my-page iOS ve Android'de com.example.android uygulaması:

Swift

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.
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)")

Objective-C

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.
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);

Kısa bir Dinamik Bağlantı oluşturmak için bir DynamicLinkComponents aynı şekilde belirleyip shorten() numaralı telefonu arayın.

Kısa bağlantı oluşturmak için doğrudan yerine ağ çağrısı gerekir bağlantı döndürüldüğünde, shorten() bir tamamlama işleyiciyi kabul eder ve istek tamamlandığında çağrılır. Örneğin:

Swift

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

Objective-C

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

Varsayılan olarak kısa Dynamic Links, yalnızca geçerli bir Dinamik Bağlantı'nın tahmin edilmesi çok düşük bir ihtimaldir. Eğer, olduğunu unutmayın. Kısa bir bağlantıyı başarılı bir şekilde tahmin edenlerin de yeteri kadar uzun olmayan sonekler oluşturmayı tercih edebilirsiniz. Bunu benzersiz kılmak için dynamicLinkComponentsOptions mülk:

Swift

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.
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)")
}

Objective-C

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.
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);
}];
      

önerilen parametrelerdir. Bkz. API referansı başlıklı makaleyi inceleyin.

Aşağıdaki örnekte birkaç yaygın parametre ile bir Dinamik Bağlantı oluşturma grup:

Swift

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.
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)")

Objective-C

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.
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);

Dinamik Bağlantı parametrelerini aşağıdaki nesne ve özelliklerle ayarlayabilirsiniz:

DynamicLinkBileşenleri
bağlantı

Uygulamanızın açacağı bağlantı. Uygulamanızın işleyebileceği bir URL belirtin (genellikle uygulamanın içeriği) uygulamaya özel mantığı (kullanıcıya kupon veya kredi vermek gibi) başlatan bir karşılama ekranı görüntülenir). Bu bağlantı iyi biçimlendirilmiş bir URL olmalı, doğru şekilde URL kodlamalı olmalıdır. ve başka bir Dinamik Bağlantı olamaz.

domainURIÖneki Firebase konsolunda bulabileceğiniz Dinamik Bağlantı URL'si ön ekiniz. CEVAP Dinamik Bağlantı alanı aşağıdaki örneklere benzer:
https://example.com/link
https://example.page.link
.
Dinamik BağlantıAndroidParametreleri
yedekURL Uygulama yüklenmediğinde açılacak bağlantı. Uygulama yüklü değilken Play Store'dan uygulamanızı yüklemek dışında bir işlem yapmak (ör. içeriğin mobil web sürümünü açmak veya uygulamanızın tanıtım sayfasını görüntülemek) için bunu belirtin.
minimumSürüm Uygulamanızın bağlantıyı açabilen minimum sürümünün versionCode değeri. Yüklü uygulama daha eski bir sürümse kullanıcı, uygulamayı yeni sürüme geçirmesi için Play Store'a yönlendirilir.
DynamicLinkIOSParameters
uygulamaMağaza Kimliği Uygulamanızın App Store kimliği (uygulama yüklü olmadığında kullanıcıları App Store'a göndermek için kullanılır)
yedekURL Uygulama yüklenmediğinde açılacak bağlantı. Uygulama yüklü değilken uygulamanızı App Store'dan yüklemek dışında bir işlem yapmak (ör. içeriğin mobil web sürümünü açmak veya uygulamanızın tanıtım sayfasını görüntülemek) için bunu belirtin.
özelŞema Uygulamanızın özel URL şeması (uygulamanızın paket kimliğinden farklı bir şekilde tanımlanırsa)
iPadFallbackURL'si Uygulama yüklü olmadığında iPad'lerde açılacak bağlantı. Uygulama yüklü değilken uygulamanızı App Store'dan yüklemek dışında bir işlem yapmak (ör. içeriğin web sürümünü açmak veya uygulamanızın tanıtım sayfasını görüntülemek) için bu seçeneği belirtin.
iPadPaket Kimliği Bağlantıyı açmak için iPad'lerde kullanılacak iOS uygulamasının paket kimliği. Uygulama, Firebase konsolunun Genel bakış sayfasından projenize bağlanmalıdır.
minimumUygulamaSürümü Uygulamanızın bağlantıyı açabilen minimum sürümünün sürüm numarası. Bu işaret, uygulamanıza açıldığında aktarılır ve uygulamanızın bununla ne yapacağına karar vermesi gerekir.
DynamicLinkGezinmeInfoParameters
forcedRedirectEnabled Politika "1" olarak ayarlanırsa Dinamik Bağlantı açıldığında uygulama önizleme sayfasını atlayıp bunun yerine uygulamaya veya mağazaya yönlendirin. Uygulama önizleme sayfası (varsayılan olarak etkindir), uygulamalarda Dinamik Bağlantıları açan kullanıcıları en uygun hedefe daha güvenilir bir şekilde gönderebilir; ancak bir Dinamik Bağlantının yalnızca bu sayfa olmadan Dynamic Links'i güvenilir bir şekilde açabilen uygulamalarda açılmasını bekliyorsanız bu parametreyle devre dışı bırakabilirsiniz. Bu parametre, Dinamik Bağlantı'nın yalnızca iOS'teki davranışını etkiler.
DynamicLinkSocialMetaTagParameters
ünvan Dinamik Bağlantı, bir sosyal medya yayınında paylaşıldığında kullanılacak başlık.
açıklamaMetni Dinamik Bağlantı, bir sosyal medya yayınında paylaşıldığında kullanılacak açıklama.
resimURL'si Bu bağlantıyla ilgili bir resmin URL'si. Resim boyutu en az 300x200 piksel, en fazla 300 KB boyutunda olmalıdır.
DynamicLinkGoogleAnalyticsParameters
kaynak
aracı
kampanya
terim
içerik
Google Play Analytics parametreleri. Bu parametreler (utm_source, utm_medium, utm_campaign, utm_term, utm_content) Play Store'a aktarılır ve bağlantı yüküne eklenir.
DynamicLinkItunesConnectAnalyticsParameters
providerToken
affiliateToken
campaignToken
iTunes Connect analiz parametreleri. Bu parametreler (pt, at, ct) App Store'a aktarılır.

Uzun bir Dinamik Bağlantıyı kısaltmak için uzun Dinamik Bağlantıyı shortenURL(url:options:) ve bir Oluşturmak isterseniz DynamicLinkComponentsOptions nesnesi bağlantısını şöyle yapabilirsiniz:

Swift

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.
DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

Objective-C

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.
[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, açılış sayfanızı açmak için gerekli URL şeması olarak kabul edersiniz. Uygulamanızı daha basit hale getirmek için bu varsayılan değeri kullanmanızı öneririz.

Bununla birlikte, halihazırda başka amaçlar için özel URL şeması kullanmakta olan geliştiriciler için de aynı özel URL şemasını kullanmanız gerekir. Bu durumdaysanız, aşağıdaki adımları uygulayarak Firebase Dynamic Links için farklı bir URL şeması oluşturabilirsiniz:

  1. Uygulamanızı kurarken, uygulamanız tarafından kullanılacak varsayılan URL şemasını belirttiğinizden emin olun FirebaseApp paylaşılan örneğinizi yapılandırmadan önce:

    Swift

    Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.
    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
    }
    

    Objective-C

    Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.
    - (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. Herhangi bir Dinamik Bağlantı oluşturduğunuzda, gösterir. Bu işlemi Firebase konsolunda, Builder API'de customScheme ayarını yaparak yapabilirsiniz. URL'nizde ius parametresini belirtmek veya iosCustomScheme parametresini REST API'si

Sonraki adımlar

Artık Dynamic Links'i oluşturduğunuza göre uygulamanızı Dynamic Links'in yanı sıra bir kullanıcı açtıktan sonra kullanıcıları uygulamanızda doğru yere yönlendirin.

Uygulamanızda Dynamic Links'i almak için şuraya bakın: iOS, Android, C++ ve Unity.