Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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, emin olun iOS projeye Firebase ekleyin .

  1. İOS projeye Firebase ekleyin .
  2. Senin şu pod dahil Podfile :
    pod 'Firebase/Analytics'
    pod 'Firebase/DynamicLinks'
        
  3. Çalıştır pod install ve oluşturulan açmak .xcworkspace dosyasını.
  4. Firebase konsolunda, Dinamik Linkler bölümünü açın.
  5. 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.

    Zaten bir Dinamik Bağlantı URI önekiniz varsa, bunu not alın. Dinamik Bağlantıları programlı olarak oluşturduğunuzda bunu sağlamanız gerekir.

  6. Önerilen: Derin bağlantılar ve yedek linkleri izin URL modellerini belirtin. Bunu yaparak, yetkisiz tarafların, alanınızdan kontrol etmediğiniz sitelere yeniden yönlendiren Dinamik Bağlantılar oluşturmasını önlersiniz. Bkz belirli URL modelleri İzin .
  7. 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 projenin gidin Ayarları sayfasında ve iOS uygulamasını seçin.

    Senin Firebase projesi düzgün açarak iOS uygulamasında Dinamik Linkler kullanmak üzere yapılandırılmış olduğunu doğrulayın apple-app-site-association Dinamik Linkler etki alanında barındırılan dosyayı. Firebase hizmet edecek apple-app-site-association etki alanının kök yanı sıra dosyayı .well-known alt dizin. Ö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 App ID öneki ve grup kimliği olarak başvuru içeriyor. Örneğin:

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

    Eğer details özellik size Uygulama Kimliği öneki belirtilen boş çift kontroldür. Uygulama Kimliği ön ekinizin Ekip Kimliğinizle aynı olmayabileceğini unutmayın.

Uygulamanıza Firebase ekleyin

  1. Sizin de Firebase modülü içe UIApplicationDelegate :

    Süratli

    import Firebase

    Amaç-C

    @import Firebase;
  2. Yapılandırma bir FirebaseApp tipik uygulamanızın içinde, örnek paylaşılan application:didFinishLaunchingWithOptions: yöntemi:

    Süratli

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

    Amaç-C

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

Firebase konsolunu kullanın

Kolayca bir sosyal medya yayını gibi bir şey kullanılabilecek bir bağlantı oluşturmak için iki test amaçlı veya pazarlama ekibi için, tek bir Dinamik Linki oluşturmak istiyorsanız, en basit yolu ziyaret etmek olurdu Firebase konsolu ve bir tane oluşturun 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.

Dinamik Linki oluşturmak için, yeni bir oluşturmak DynamicLinkComponents nesne ve nesnenin gelen özelliklerini ayarlayarak Devingen parametreleri belirtin. Ardından, nesnenin uzun bağlantı almak url mülkiyet veya arayarak kısa linki almak shorten() .

Aşağıdaki minimum örnek için uzun Dinamik Linki oluşturur https://www.example.com/my-page iOS iOS uygulaması ve uygulama ile açar com.example.android Android'de:

Süratli

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

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 Dinamik Linki oluşturmak inşa etmek DynamicLinkComponents sonra aynı şekilde ve çağrı shorten() .

Bir ağ çağrı kısa bir bağlantı gerektirir Bina, bu nedenle yerine doğrudan bağlantıyı, dönen shorten() eğer istek tamamlamalar çağrılan bir tamamlama işleyici, kabul eder. Örneğin:

Süratli

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

Amaç-C

[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ı durumda, birinin başarıyla kısa bağlantıyı tahmin bir zarar varsa, size ayarlayarak yapabileceğiniz, benzersiz olması sürece gerekli olduğu sadece son ekleri oluşturmak için tercih edebilirsiniz dynamicLinkComponentsOptions özelliği:

Süratli

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

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. Bkz API başvurusuna detayları için.

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

Süratli

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

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 bir URL belirtin, genellikle uygulamanın içeriği veya yükü, uygulamaya özel mantığı başlatır (kullanıcıya 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. Aşağıdaki örneklerde olduğu gibi bir dinamik bağlantı alanı görünüyor:
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üklenmediğinde Play Store'dan uygulamanızı yüklemek dışında bir şey yapmak için bunu belirtin.
minimumSürüm versionCode bağlantı açarak uygulamanızın asgari versiyonunun. 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 başka 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ü Sürüm numarası bağlantı açarak uygulamanızın asgari versiyonunun. Bu bayrak, açıldığında uygulamanıza iletilir ve uygulamanız onunla ne yapacağına karar vermelidir.
DynamicLinkNavigationInfoParameters
zorunluYönlendirmeEtkin '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, bir Dinamik Bağlantının yalnızca bu sayfa olmadan Dinamik Bağlantıları güvenilir şekilde açabilen uygulamalarda 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 ) sıra bağlantı yüküne eklenen olarak Play Store'a aktarılır.
DynamicLinkItunesConnectAnalyticsParameters
sağlayıcıToken
affiliateToken
kampanya Simgesi
iTunes Connect analiz parametreleri. Bu parametreler ( pt , at , ct ) App Store geçirilir.

Uzun Dinamik Linki geçmesi, uzun Dinamik Linki kısaltmak için shortenURL(url:options:) bir birlikte DynamicLinkComponentsOptions kısa bir sonek ile bir bağlantı oluşturmak istiyorsanız itiraz:

Süratli

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

[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, sizin yapılandırmadan önce uygulama tarafından kullanılmak üzere varsayılan URL şemasını belirlemek emin olmak FirebaseApp paylaştı örneği:

    Süratli

    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

    - (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. Sen ayarı Firebase konsolu aracılığıyla yapabilirsiniz customScheme , Oluşturucu API belirterek ius URL'nizdeki parametreyi veya gönderme iosCustomScheme REST API parametreyi

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 Linkler almak için, belgelere bakın iOS , Android , C ++ , ve Unity .