iOS'ta Dinamik Bağlantılar Oluşturun

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

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

Önkoşullar

Başlamadan önce , iOS projenize Firebase'i eklediğinizden emin olun.

Firebase bağımlılıklarını kurmak ve yönetmek için Swift Paket Yöneticisi'ni kullanın.

  1. Xcode'da, uygulama projeniz açıkken Dosya > Swift Paketleri > Paket Bağımlılığı Ekle seçeneğine gidin.
  2. İstendiğinde, Firebase Apple platformları SDK deposunu ekleyin:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Dinamik Bağlantılar kitaplığını seçin.
  5. Dynamic Links ile optimum deneyim için, Firebase projenizde Google Analytics'i etkinleştirmenizi ve Google Analytics için Firebase SDK'sını uygulamanıza eklemenizi öneririz. IDFA koleksiyonu olmayan veya IDFA koleksiyonu olan kütüphaneyi seçebilirsiniz.
  6. Bittiğinde, Xcode otomatik olarak bağımlılıklarınızı arka planda çözmeye ve indirmeye başlayacaktır.

Şimdi, bazı yapılandırma adımlarını gerçekleştirin:

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

    Halihazırda bir Dynamic Links URI önekiniz varsa, bunu not alın. Programlı olarak Dinamik Bağlantılar oluşturduğunuzda bunu sağlamanız gerekir.

  3. Önerilen : Derin bağlantılarınızda ve yedek bağlantılarınızda izin verilen URL modellerini belirtin. Bunu yaparak, yetkisiz tarafların, alanınızdan kontrol etmediğiniz sitelere yönlendirme yapan Dinamik Bağlantılar oluşturmasını önlersiniz. Belirli URL kalıplarına izin verme konusuna bakın.
  4. Uygulamanızın App Store Kimliği ve Uygulama Kimliği ön ekinizin uygulamanızın ayarlarında belirtildiğinden emin olun. Uygulamanızın ayarlarını görüntülemek ve düzenlemek için Firebase projenizin Ayarlar sayfasına gidin ve iOS uygulamanızı seçin.

    Dynamic Links etki alanınızda barındırılan apple-app-site-association dosyasını açarak Firebase projenizin iOS uygulamanızda Dinamik Bağlantıları kullanacak şekilde doğru şekilde yapılandırıldığını doğrulayın. Firebase, apple-app-site-association dosyasını etki alanının kökünden ve ayrıca .well-known alt dizininden sunacaktır. Örneğin:

        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ı, uygulamanızın Uygulama Kimliği önekine ve paket kimliğine bir referans içerir. Örneğin:

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

    details özelliği boşsa, Uygulama Kimliği ön ekinizi belirttiğinizi bir kez daha kontrol edin. Uygulama Kimliği ön ekinizin Ekip Kimliğinizle aynı olmayabileceğini unutmayın.

Uygulamanıza Firebase ekleyin

  1. Firebase modülünü UIApplicationDelegate aktarın:

    Süratli

    import Firebase

    Amaç-C

    @import Firebase;
  2. Genellikle uygulamanızın application:didFinishLaunchingWithOptions: yönteminde bir FirebaseApp paylaşılan örneği yapılandırın:

    Süratli

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

    Amaç-C

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

Firebase konsolunu kullanın

Test amacıyla veya pazarlama ekibinizin sosyal medya gönderisi gibi bir şeyde kullanılabilecek bir bağlantıyı kolayca oluşturması için tek bir Dinamik Bağlantı oluşturmak istiyorsanız, en basit yol Firebase konsolunu ziyaret edip bir tane oluşturmak olacaktır. adım adım formu manuel olarak takip edin.

iOS Oluşturucu API'sini kullanın

Parametrelerden Dinamik Bağlantılar oluşturmak veya uzun bir Dinamik Bağlantıyı kısaltmak için iOS Builder API'sini kullanabilirsiniz.

Bir Dinamik Bağlantı oluşturmak için yeni bir DynamicLinkComponents nesnesi oluşturun ve nesnenin ilgili özelliklerini ayarlayarak Dinamik Bağlantı parametrelerini belirtin. Ardından, nesnenin url özelliğinden uzun bağlantıyı alın veya shorten() çağırarak kısa bağlantıyı alın.

Aşağıdaki minimal örnek, iOS'ta iOS uygulamanızla ve Android'de com.example.android uygulamasıyla açılan https://www.example.com/my-page için uzun bir Dinamik Bağlantı oluşturur:

Süratli

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde mevcut değildir.
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)")

Amaç-C

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde mevcut değildir.
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, aynı şekilde bir DynamicLinkComponents oluşturun ve ardından short shorten() öğesini çağırın.

Kısa bir bağlantı oluşturmak, bir ağ çağrısı gerektirir, bu nedenle, bağlantıyı doğrudan döndürmek yerine, short shorten() , istek tamamlandığında çağrılan bir tamamlama işleyicisini kabul eder. Örneğin:

Süratli

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

Amaç-C

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde mevcut değildir.
[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 Dinamik Bağlantılar, birinin geçerli bir Dinamik Bağlantı tahmin etmesini son derece olası kılan 17 karakterlik bağlantı son ekleriyle oluşturulur. Kullanım durumunuz için, birinin kısa bir bağlantıyı başarılı bir şekilde tahmin etmesinin bir zararı yoksa, yalnızca benzersiz olması gerektiği kadar uzun olan son ekler oluşturmayı tercih edebilirsiniz; bunu dynamicLinkComponentsOptions özelliğini ayarlayarak yapabilirsiniz:

Süratli

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde mevcut değildir.
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)")
}

Amaç-C

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

Desteklenen parametrelerden herhangi biriyle Dinamik Bağlantılar oluşturmak için Dynamic Link Builder API'sini kullanabilirsiniz. Ayrıntılar için API referansına bakın.

Aşağıdaki örnek, birkaç ortak parametre seti ile bir Dinamik Bağlantı oluşturur:

Süratli

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde mevcut değildir.
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)")

Amaç-C

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde mevcut değildir.
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 parametrelerini aşağıdaki nesneler ve özelliklerle ayarlayabilirsiniz:

Dinamik Bağlantı Bileşenleri
bağlantı

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

alanURIPrefix Firebase konsolunda bulabileceğiniz Dinamik Bağlantı URL önekiniz. Dinamik Bağlantı etki alanı aşağıdaki örneklere benzer:
https://example.com/link
https://example.page.link
DynamicLinkAndroidParametreleri
geri dönüş URL'si Uygulama yüklenmediğinde açılacak bağlantı. İçeriğin mobil web sürümünü açmak veya uygulamanız için bir tanıtım sayfası görüntülemek gibi uygulama yüklü değilken Play Store'dan uygulamanızı yüklemek dışında bir şey yapmak için bunu belirtin.
minimumSürüm Bağlantıyı açabilen uygulamanızın minimum sürümünün versionCode . Yüklenen uygulama daha eski bir sürümse, kullanıcı uygulamayı yükseltmek için Play Store'a götürülür.
DynamicLinkIOSParametreleri
appStoreID Uygulamanızın, uygulama yüklü olmadığında kullanıcıları App Store'a göndermek için kullanılan App Store Kimliği
geri dönüş URL'si Uygulama yüklenmediğinde açılacak bağlantı. İçeriğin mobil web sürümünü açmak veya uygulamanız için bir tanıtım sayfası görüntülemek gibi uygulama yüklü olmadığında uygulamanızı App Store'dan yüklemek dışında bir şey yapmak için bunu belirtin.
özelŞema Uygulamanızın paket kimliğinden farklı bir şey olarak tanımlanmışsa, uygulamanızın özel URL şeması
iPadFallbackURL Uygulama yüklenmediğinde iPad'lerde açılacak bağlantı. İçeriğin web sürümünü açmak veya uygulamanız için bir tanıtım sayfası görüntülemek gibi uygulama yüklü olmadığında uygulamanızı App Store'dan yüklemek dışında bir şey yapmak için bunu belirtin.
iPadBundleID 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.
minimumUygulama Sürümü Uygulamanızın bağlantıyı açabilen minimum sürümünün sürüm numarası . Bu bayrak, açıldığında uygulamanıza iletilir ve uygulamanız onunla ne yapacağına karar vermelidir.
DynamicLinkNavigationInfoParameters
zorunluYönlendirmeEnabled '1' olarak ayarlanırsa, Dinamik Bağlantı açıldığında uygulama önizleme sayfasını atlayın ve bunun yerine uygulamaya veya mağazaya yönlendirin. Uygulama önizleme sayfası (varsayılan olarak etkindir), uygulamalarda Dinamik Bağlantıları açtıklarında kullanıcıları daha güvenilir bir şekilde en uygun hedefe gönderebilir; ancak, bu sayfa olmadan yalnızca Dinamik Bağlantıları güvenilir bir şekilde açabilen uygulamalarda bir Dinamik Bağlantının açılmasını bekliyorsanız, bu parametre ile devre dışı bırakabilirsiniz. Bu parametre, Dinamik Bağlantının davranışını yalnızca iOS'ta etkiler.
DynamicLinkSocialMetaTagParameters
Başlık Dinamik Bağlantı bir sosyal gönderide paylaşıldığında kullanılacak başlık.
açıklamaMetin Dinamik Bağlantı bir sosyal gönderide paylaşıldığında kullanılacak açıklama.
imageURL Bu bağlantıyla ilgili bir resmin URL'si. Resim en az 300x200 piksel ve 300 KB'den küçük olmalıdır.
DynamicLinkGoogleAnalyticsParametreleri
kaynak
orta
kampanya
Terim
içerik
Google Play analiz parametreleri. Bu parametreler ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) Play Store'a aktarılır ve ayrıca bağlantı yüküne eklenir.
DynamicLinkItunesConnectAnalyticsParameters
sağlayıcıToken
affiliateToken
kampanya Simgesi
iTunes Connect analiz parametreleri. Bu parametreler ( pt , at , ct ) App Store'a iletilir.

Uzun bir Dinamik Bağlantıyı kısaltmak için, kısa bir sonek içeren bir bağlantı oluşturmak istiyorsanız, uzun Dinamik Bağlantıyı shortenURL(url:options:) ile birlikte bir DynamicLinkComponentsOptions nesnesine iletin:

Süratli

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

Amaç-C

Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde mevcut değildir.
[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);
}];

Varsayılan olarak Dynamic Links, uygulamanızı açmak için gereken URL şeması olarak uygulamanızın paket tanımlayıcısını kullanır. Uygulamanızı basit tutmak için bu varsayılan değerde kalmanızı öneririz.

Ancak, halihazırda başka amaçlar için özel bir URL şeması kullanan geliştiriciler, bu aynı özel URL şemasını Dinamik Bağlantıları için de kullanmak isteyebilir. Bu durumdaysanız, aşağıdaki adımları izleyerek Firebase Dinamik Bağlantılarınız için farklı bir URL şeması belirtebilirsiniz:

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

    Süratli

    Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde mevcut değildir.
    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
    }
    

    Amaç-C

    Not: Bu Firebase ürünü macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde mevcut değildir.
    - (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, uygulamanızın kullandığı özel URL şemasını belirtmeniz gerekir. Bunu, Builder API'sinde customScheme ayarlayarak, URL'nizde ius parametresini belirterek veya iosCustomScheme parametresini REST API'ye göndererek Firebase konsolu aracılığıyla yapabilirsiniz.

Sonraki adımlar

Artık Dinamik Bağlantıları oluşturduğunuza göre, uygulamanızı Dinamik Bağlantıları alacak ve bir kullanıcı açtıktan sonra kullanıcıları uygulamanızda doğru yere gönderecek şekilde ayarlamanız gerekir.

Uygulamanızda Dinamik Bağlantılar almak için iOS , Android , C++ ve Unity belgelerine bakın.