Firebase Dynamic Links Oluşturucu API'si ile kısa veya uzun Dynamic Links oluşturabilirsiniz. Bu API, uzun bir Dynamic Link veya Dynamic Link parametreleri içeren bir nesne kabul eder ve aşağıdaki örneklerdeki gibi URL'ler 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ılarını yükleyip yönetmek için Swift Package Manager'ı kullanın.
- Xcode'da, uygulamanız açıkken File > Add Packages (Dosya > Paket Ekle) seçeneğine gidin.
- İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
- Dynamic Links kitaplığını seçin.
-ObjC
işaretini hedefinizin derleme ayarlarının Other Linker Flags (Diğer Bağlayıcı İşaretleri) bölümüne ekleyin.- Dynamic Links ile en iyi deneyimi elde etmek için Firebase projenizde Google Analytics'ı etkinleştirmenizi ve uygulamanıza Google Analytics için Firebase SDK'sını eklemenizi öneririz. IDFA toplama özelliği olmayan veya IDFA toplama özelliği olan kitaplığı seçebilirsiniz. Firebase SDK'sında Google Analytics için modüllerin en son düzenlenmesi ile ilgili SSS bölümümüzü inceleyin.
- İşlem tamamlandığında Xcode otomatik olarak arka planda bağımlılarınızı çözümlemeye ve indirmeye başlar.
https://github.com/firebase/firebase-ios-sdk.git
Şimdi bazı yapılandırma adımlarını uygulayın:
- Firebase konsolunda Dynamic Links bölümünü açın.
-
Henüz hizmet şartlarını kabul etmediyseniz ve Dynamic Links için bir URI öneki ayarlamadıysanız istendiğinde bunları yapın.
Zaten bir Dynamic Links URI önekiniz varsa bunu not edin. Dynamic Links öğelerini 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ı engellersiniz. Belirli URL kalıplarına izin verme başlıklı makaleyi inceleyin.
-
Uygulamanızın App Store kimliğinin ve uygulama kimliği önekinizin 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 üzere doğru şekilde yapılandırıldığını onaylayın. Firebase,apple-app-site-association
dosyasını alan adının kökünden ve.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 önekini belirttiğinizden emin olun. Uygulama kimliği ön ekinizin ekip kimliğinizle aynı olmayabileceğini unutmayın.
Firebase'i uygulamanıza ekleyin
FirebaseCore
modülünüUIApplicationDelegate
dosyanıza ve uygulama temsilcinizin kullandığı diğer Firebase modüllerine 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 paylaşılan birFirebaseApp
örneği yapılandırın: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];
- SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturmanız ve bunu
App
yapınızdaUIApplicationDelegateAdaptor
veyaNSApplicationDelegateAdaptor
aracılığıyla eklemeniz gerekir. Ayrıca uygulama temsilcisi karıştırmayı da devre dışı bırakmanız gerekir. 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
İster test amacıyla ister pazarlama ekibinizin sosyal medya gönderisi gibi yerlerde kullanılabilecek bir bağlantıyı kolayca oluşturması için tek bir Dynamic Link oluşturmak istiyorsanız en basit yol, Firebase konsolunu ziyaret edip adım adım formu izleyerek manuel olarak oluşturmaktır.
iOS Builder API'yi kullanma
Parametrelerden Dynamic Links oluşturmak veya uzun bir Dynamic Link kısaltmak için iOS Builder API'yi kullanabilirsiniz.
Parametrelerden Dynamic Link oluşturma
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()
işlevini çağırarak kısa bağlantıyı alın.
Aşağıdaki minimum örnek, iOS'te iOS uygulamanızla açılan Dynamic Link ile https://www.example.com/my-page
arasında uzun bir bağlantı ve Android'de uygulama com.example.android
oluşturur:
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 DynamicLinkComponents
öğesini aynı şekilde oluşturun ve ardından shorten()
öğesini çağırın.
Kısa bağlantı oluşturmak için ağ çağrısı yapılması gerekir. Bu nedenle, bağlantıyı doğrudan döndürmek yerine shorten()
, istek tamamlandığında çağrılan bir tamamlama işleyicisi 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, 17 karakterlik bağlantı sonekleriyle oluşturulur. Bu sonekler, geçerli bir Dynamic Link'nin tahmin edilmesini son derece zorlaştırır. Kullanım alanınızda kısa bağlantıyı birinin başarılı bir şekilde tahmin etmesinin sakıncası yoksa benzersiz olmak için yalnızca gerekli uzunlukta 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 biriyle Dynamic Links oluşturmak için Dynamic Link Builder API'yi kullanabilirsiniz. Ayrıntılar için API referansı bölümüne bakın.
Aşağıdaki örnekte, birkaç yaygın parametrenin ayarlandığı bir Dynamic Link oluşturuluyor:
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);
Aşağıdaki nesneler ve özelliklerle Dynamic Link parametreleri ayarlayabilirsiniz:
DynamicLinkComponents | |
---|---|
bağlantı |
Uygulamanızın açacağı bağlantı. Uygulamanızın işleyebileceği bir URL belirtin. Bu URL genellikle uygulamanın içeriği veya yüküdür ve uygulamaya özgü mantığı (ör. kullanıcıya kupon kredisi verme veya karşılama ekranı gösterme) başlatır. Bu bağlantı, iyi biçimlendirilmiş bir URL olmalı, uygun şekilde URL kodlamalı olmalı, HTTP veya HTTPS kullanmalı ve başka bir dinamik bağlantı olmamalıdır. |
domainURIPrefix | Dynamic Link URL önekiniz. Bu bilgiyi Firebase konsolunda bulabilirsiniz. A
Dynamic Link alanı aşağıdaki örneklere benzer:
https://example.com/link https://example.page.link |
DynamicLinkAndroidParameters | |
---|---|
fallbackURL | Uygulama yüklü değilken açılacak bağlantı. Uygulama yüklü değilken Play 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ız için bir tanıtım sayfası göstermek) bunu belirtin. |
minimumVersion | Bağlantıyı açabilecek uygulamanızın 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 | |
---|---|
appStoreID | Uygulama yüklü olmadığında 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ı. Uygulama yüklü değilken 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ız için tanıtım amaçlı bir sayfa göstermek) bunu belirtin. |
customScheme | Uygulamanızın paket kimliğinden farklı olarak tanımlanmışsa uygulamanızın özel URL şeması |
iPadFallbackURL | Uygulama yüklü değilken iPad'lerde açılacak bağlantı. Uygulama yüklü değilken 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ız için 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ğlanmalıdır. |
minimumAppVersion | Bağlantıyı açabilecek uygulamanızın minimum sürümünün sürüm numarası. Bu işaret, uygulamanız açıldığında uygulamaya iletilir ve uygulamanız bu işaretle ne yapacağına karar vermelidir. |
DynamicLinkNavigationInfoParameters | |
---|---|
forcedRedirectEnabled | "1" olarak ayarlanırsa Dynamic Link açıldığında uygulama önizleme sayfası atlanır ve bunun yerine uygulamaya veya mağazaya yönlendirilir. Uygulama önizleme sayfası (varsayılan olarak etkindir), kullanıcılar uygulamalarda Dynamic Links açtığında onları en uygun hedefe daha güvenilir bir şekilde yönlendirebilir. Ancak Dynamic Link öğesinin yalnızca bu sayfa olmadan Dynamic Links öğesini güvenilir bir şekilde açabilen uygulamalarda açılmasını bekliyorsanız bu parametreyle devre dışı bırakabilirsiniz. Bu parametre, Dynamic Link davranışını yalnızca iOS'te etkiler. |
DynamicLinkSocialMetaTagParameters | |
---|---|
ünvan | Dynamic Link sosyal medya gönderisinde paylaşıldığında kullanılacak başlık. |
descriptionText | Dynamic Link sosyal medya gönderisinde paylaşıldığında kullanılacak açıklama. |
imageURL | Bu bağlantıyla ilgili bir resmin URL'si. Resim en az 300x200 piksel boyutunda ve 300 KB'tan küçük 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 iletilir 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 kısaltma
Uzun bir Dynamic Link kısaltmak için kısa bir sonek içeren bağlantı oluşturmak istiyorsanız uzun Dynamic Link, shortenURL(url:options:)
ile birlikte bir DynamicLinkComponentsOptions
nesnesine 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, başka amaçlar için özel bir 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ı ayarlarken
FirebaseApp
paylaşılan ö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. Bu işlemi Firebase konsolundan, Builder API'de
customScheme
değerini 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 ve kullanıcılar bunları açtıktan sonra kullanıcıları uygulamanızda doğru yere gönderecek şekilde ayarlamanız gerekir.
Uygulamanızda Dynamic Links almak için iOS, Android, C++ ve Unity dokümanlarına bakın.