Firebase Dynamic Links Builder API ile kısa veya uzun Dynamic Links oluşturabilirsiniz. Bu API, uzun Dynamic Link parametrelerini veya Dynamic Link parametrelerini içeren bir nesneyi kabul eder 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 projenize eklediğinizden emin olun.
Firebase ve Dynamic Links SDK'sını ayarlama
Firebase bağımlılıklarını yükleyip yönetmek için Swift Package Manager'ı kullanın.
Firebase SDK'larını Apple projenize eklemenin farklı yolları (ör. doğrudan çerçeveleri içe aktarma ve CocoaPods kullanma) hakkında bilgi edinmek için- Xcode'da, uygulamanız açıkken Dosya > Paket Ekle'ye gidin.
- İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
- Dynamic Links kitaplığını seçin.
-ObjC
işaretini, hedefinizin derleme ayarlarının Diğer Bağlantı Oluşturucu İşaretleri bölümüne ekleyin.- Dynamic Links ile en iyi deneyimi yaşamak 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 kitaplığı seçebilirsiniz.
- İşlem tamamlandığında Xcode, arka planda bağımlılarınızı otomatik olarak çözümlemeye ve indirmeye başlar.
https://github.com/firebase/firebase-ios-sdk.git
Ardından, bazı yapılandırma adımlarını uygulayın:
- Firebase konsolunda Dynamic Links bölümünü açın.
-
Hizmet Şartları'nı henüz kabul etmediyseniz ve Dynamic Links cihazınız için bir URI öneki ayarlamadıysanız, istendiğinde bunu yapın.
Zaten bir Dynamic Links URI önekiniz varsa bunu not edin. Dynamic Links'ü programatik olarak oluştururken bu değeri sağlamanız gerekir.
- Önerilen: Derin bağlantılarınızda ve yedek bağlantılarınızda izin verilen URL kalıplarını belirtin. Bu sayede, yetkisiz tarafların alanınızdan kontrol etmediğiniz sitelere yönlendiren Dynamic Links oluşturmasını engellemiş olursunuz. Belirli URL kalıplarına izin verme bölümüne bakın.
-
Uygulamanızın App Store kimliğinin ve uygulama kimliği ön ekinin 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 alanınızda barındırılan
apple-app-site-association
dosyasını açarak Firebase projenizin iOS uygulamanızda Dynamic Links kullanmak için doğru şekilde yapılandırıldığından emin olun. Firebase,apple-app-site-association
dosyasını alanın kök dizininin yanı sıra.well-known
alt dizininden sunar. Ö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 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 tekrar kontrol edin. Uygulama kimliği ön ekinizin, Ekip Kimliğinizle aynı olmayabileceğini unutmayın.
Firebase'i uygulamanıza ekleyin
FirebaseCore
modülünü ve uygulama temsilcinizin kullandığı diğer tüm Firebase modülleriniUIApplicationDelegate
dosyanıza aktarın. Ö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; // ...
- Uygulama temsilcinizin
application(_:didFinishLaunchingWithOptions:)
yönteminde birFirebaseApp
shared instance yapılandırın:Hızlı Kullanıcı Arayüzü
// 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];
- SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturmanız ve
UIApplicationDelegateAdaptor
veyaNSApplicationDelegateAdaptor
aracılığıylaApp
yapınıza eklemeniz gerekir. Uygulama yetkisi kaydırmayı da devre dışı bırakmanız gerekir. Daha fazla bilgi için SwiftUI talimatlarına bakın.Hızlı Kullanıcı Arayüzü
@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 ekibinizin sosyal medya yayını gibi bir yerde kullanılabilecek bir bağlantıyı kolayca oluşturması için tek bir Dynamic Link oluşturmak istiyorsanız en basit yöntem Firebase konsolunu ziyaret edip adım adım açıklamalı formu takip ederek manuel olarak bir bağlantı oluşturmaktır.
iOS Builder API'yi kullanma
Parametrelerden Dynamic Links derlemesi yapmak veya uzun bir Dynamic Link öğesini kısaltmak için iOS Builder API'yi kullanabilirsiniz.
Parametrelerden Dynamic Link oluşturun
Dynamic Link oluşturmak için yeni bir DynamicLinkComponents
nesnesi oluşturun ve nesnenin ilgili özelliklerini ayarlayarak Dynamic Link parametrelerini belirtin. Ardından, nesnenin url
özelliğinden uzun bağlantıyı alın veya shorten()
yöntemini çağırarak kısa bağlantıyı alın.
Aşağıdaki minimal örnekte, iOS'te iOS uygulamanızla ve Android'de com.example.android
uygulamasıyla açılan uzun bir Dynamic Link to https://www.example.com/my-page
oluşturulmaktadır:
Swift
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
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 Dynamic Link oluşturmak için aynı şekilde bir DynamicLinkComponents
oluşturun ve ardından shorten()
'yi çağırın.
Kısa bağlantı oluşturmak için ağ çağrısı gerekir. Bu nedenle shorten()
, bağlantıyı doğrudan döndürmek yerine istek tamamlandığında çağrılan bir tamamlama işleyiciyi kabul eder. Örneğin:
Swift
linkBuilder.shorten() { url, warnings, error in guard let url = url, error != nil else { return } print("The short URL is: \(url)") }
Objective-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 Dynamic Links, geçerli bir Dynamic Link'ın tahmin edilmesini son derece zorlaştıran 17 karakterlik bağlantı son ekleriyle oluşturulur. Kullanım alanınız açısından, bir kişinin kısa bağlantıyı başarılı bir şekilde tahmin etmesinin bir zararı yoksa benzersiz olmaları için gereken süre boyunca sonekler oluşturmayı tercih edebilirsiniz. Bunu dynamicLinkComponentsOptions
özelliğini ayarlayarak yapabilirsiniz:
Swift
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
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 parametre
Desteklenen parametrelerden herhangi birini kullanarak Dynamic Links oluşturmak için Dynamic Link Builder API'yi kullanabilirsiniz. Ayrıntılar için API referansına bakın.
Aşağıdaki örnekte, birkaç yaygın parametrenin ayarlandığı bir Dynamic Link oluşturulmaktadır:
Swift
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
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 nesne ve özelliklerle ayarlayabilirsiniz:
DynamicLinkBileşenleri | |
---|---|
bağlantı |
Uygulamanızın açacağı bağlantı. Uygulamanızın işleyebileceği bir URL belirtin. Bu URL genellikle uygulamaya özgü mantığı (ör. kullanıcıya kupon verme veya karşılama ekranı gösterme) başlatan uygulamanın içeriği ya da yükü olur. Bu bağlantı, iyi biçimlendirilmiş bir URL olmalıdır, düzgün bir şekilde URL kodlamalı, HTTP veya HTTPS kullanmalıdır ve başka bir dinamik bağlantı olamaz. |
domainURIÖneki | Dynamic Link URL ön ekiniz. Firebase konsolunda bulabilirsiniz. Dynamic Link alanı aşağıdaki örneklere benzer:
https://example.com/link https://example.page.link |
DynamicLinkAndroidParameters | |
---|---|
fallbackURL | Uygulama yüklenmediğinde açılacak bağlantı. Uygulamanız yüklü değilken Play Store'dan uygulamanızı yüklemek dışında bir işlem yapmak için (ör. içeriğin mobil web sürümünü açmak veya uygulamanızla ilgili tanıtım sayfası göstermek) bunu belirtin. |
minimumVersion | Uygulamanızın bağlantıyı açabilen minimum sürümünün versionCode . Yüklü uygulama eski bir sürümse kullanıcı, uygulamayı yükseltmek için Play Store'a yönlendirilir. |
DynamicLinkIOSParameters | |
---|---|
uygulamaMağaza Kimliği | Uygulama yüklenmemişken kullanıcıları App Store'a yönlendirmek için kullanılan uygulamanızın App Store kimliği |
fallbackURL | Uygulama yüklü değilken açılacak bağlantı. Uygulamanız yüklü değilken uygulamanızı App Store'dan yüklemek dışında bir işlem yapmak için (ör. içeriğin mobil web sürümünü açmak veya uygulamanızla ilgili tanıtım sayfası göstermek) bunu belirtin. |
özelŞema | Uygulamanızın paket kimliğinden farklı bir şekilde tanımlanmışsa uygulamanızın özel URL şeması |
iPadFallbackURL'si | Uygulama yüklü değilken iPad'lerde açılacak bağlantı. Uygulamanız yüklü değilken uygulamanızı App Store'dan yüklemek dışında bir işlem yapmak için (ör. içeriğin web sürümünü açmak veya uygulamanızla ilgili tanıtım sayfası göstermek) 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ğlı olmalıdır. |
minimumAppVersion | Uygulamanızın bağlantıyı açabilen minimum sürümünün sürüm numarası. Bu işaret, uygulamanız açıldığında uygulamanıza iletilir ve uygulamanızın bu işaretle ne yapacağını belirlemesi gerekir. |
DynamicLinkGezinmeInfoParameters | |
---|---|
forcedRedirectEnabled | "1" olarak ayarlanırsa Dynamic Link açıldığında uygulama önizleme sayfası atlanır ve uygulamaya veya mağazaya yönlendirilir. Uygulama önizleme sayfası (varsayılan olarak etkindir), uygulamalarda Dynamic Links uygulamasını açtıklarında kullanıcıları en uygun hedefe daha güvenilir bir şekilde gönderebilir. Ancak, Dynamic Link öğesinin yalnızca bu sayfa olmadan Dynamic Links uygulamasını güvenilir bir şekilde açabilen uygulamalarda açılmasını bekliyorsanız bu parametreyle devre dışı bırakabilirsiniz. Bu parametre, Dynamic Link öğesinin davranışını yalnızca iOS'te etkiler. |
DynamicLinkSocialMetaTagParameters | |
---|---|
ünvan | Dynamic Link sosyal medya yayınında paylaşıldığında kullanılacak başlık. |
açıklamaMetni | Dynamic Link 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 | |
---|---|
source medium campaign term content |
Google Play analiz 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 iletilir. |
Uzun bir Dynamic Link
Uzun bir Dynamic Link öğesini kısaltmak için kısa son eke sahip bir bağlantı oluşturmak isterseniz uzun Dynamic Link öğesini bir DynamicLinkComponentsOptions
nesnesiyle birlikte shortenURL(url:options:)
öğesine iletin:
Swift
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
[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 için özel URL şeması belirtme
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ğeri kullanmaya devam etmenizi öneririz.
Ancak, halihazırda başka amaçlar için özel URL şeması kullanan geliştiriciler, Dynamic Links için de aynı özel URL şemasını kullanmak isteyebilir. Bu durumdaysanız aşağıdaki adımları uygulayarak Firebase Dynamic Links için farklı bir URL şeması belirtebilirsiniz:
- Uygulamanızı kurarken, paylaşılan
FirebaseApp
örneğinizi yapılandırmadan önce uygulamanız tarafından kullanılacak varsayılan URL şemasını belirttiğinizden emin olun: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; }
- Herhangi bir Dynamic Link oluşturduğunuzda, uygulamanızın kullandığı özel URL şemasını belirtmeniz gerekir. Bunu Firebase konsolunu kullanarak, Builder API'de
customScheme
'yi ayarlayarak, URL'nizdeius
parametresini belirterek veyaiosCustomScheme
parametresini REST API'ye göndererek yapabilirsiniz.
Sonraki adımlar
Dynamic Links oluşturduğunuza göre, uygulamanızı Dynamic Links alacak şekilde ayarlamanız ve kullanıcılar uygulamayı açtıktan sonra kullanıcıları uygulamanızda doğru yere yönlendirecek şekilde ayarlamanız gerekir.
Uygulamanızda Dynamic Links almak için iOS, Android, C++ ve Unity ile ilgili dokümanları inceleyin.