Firebase Dynamic Links Builder API ile kısa veya uzun Dynamic Links oluşturabilirsiniz. Bu API, uzun Dynamic Link veya Dynamic Link içeren bir nesneyi 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 ve Dynamic Links SDK'sını ayarlayın
Firebase bağımlılıklarını yükleyip yönetmek için Swift Package Manager'ı kullanın.
- Xcode'da, uygulama projeniz açıkken Dosya > Paket Ekle'yi tıklayın.
- İstendiğinde Firebase Apple platformlar SDK deposunu ekleyin:
- Dynamic Links kitaplığını seçin.
-ObjC
işaretini, hedefinizin derleme ayarlarındaki Diğer Bağlayıcı İşaretleri bölümüne ekleyin.- En iyi Dynamic Links deneyimi için şunları öneririz: Google Analytics özelliğini 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.
- İşlemi tamamladığınızda, Xcode otomatik olarak arka planda tutmalarını sağ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.
-
Hizmet şartlarını henüz kabul etmediyseniz ve bir URI öneki ayarladıysanız Dynamic Links cihazınız için istendiğinde bunu yapın.
Zaten bir Dynamic Links URI ön ekiniz varsa bunu not edin. Şunları yapmanız gerekir: Dynamic Links öğesini programatik olarak oluştururken bu kodu sağlayın.
- Ö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 Dynamic Links oluşturmaktır. Daha fazla bilgi için Belirli URL kalıpları hakkında daha fazla bilgi edinin.
-
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 Dynamic Links uygulamasını açın. Şurada barındırılan
apple-app-site-association
dosyası: Dynamic Links alanı. Firebase, Google Analytics 4'teapple-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
FirebaseCore
modülünüUIApplicationDelegate
ve diğer Yetki verdiğiniz uygulamanın kullandığı Firebase modülleri. Örneğin, Cloud Firestore ve Authentication özelliklerini 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; // ...
- Şunu yapılandır:
FirebaseApp
paylaşılan örneğinizinapplication(_: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];
- SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturup bunu eklemeniz gerekir
App
struct'ınızaUIApplicationDelegateAdaptor
veyaNSApplicationDelegateAdaptor
. 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 kullan
Test amacıyla veya pazarlama ekibiniz için tek bir Dynamic Link oluşturmak istiyorsanız sosyal medya yayını gibi bir yerde kullanılabilecek bir bağlantıyı kolayca oluşturmak 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 Dynamic Links oluşturmak veya ve uzun bir Dynamic Link girin.
Parametrelerden Dynamic Link oluşturun
Bir Dynamic Link oluşturmak için yeni bir DynamicLinkComponents
nesnesi oluşturun
ve nesneye karşılık gelen parametreyi ayarlayarak Dynamic Link parametrelerini belirtin.
ö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 Dynamic Link
iOS uygulamanız açıkken açılan https://www.example.com/my-page
iOS ve Android'de com.example.android
uygulaması:
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
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
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, oluşturduğunuz 17 karakterlik bağlantı sonekleriyle oluşturulur.
geçerli bir Dynamic Link tahmin etmesi çok düşük bir ihtimaldir. Eğer,
olduğunu varsayalım. Kısa bir bağlantıyı başarılı bir şekilde tahmin etmek,
yeteri kadar uzun olmayan sonekler oluşturmayı tercih edebilirsiniz.
Bunu benzersiz kılmak için
dynamicLinkComponentsOptions
mülk:
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
Bunlardan herhangi biriyle Dynamic Links oluşturmak için Dynamic Link Builder API'yi kullanabilirsiniz önerilen parametrelerdir. Bkz. API referansı başlıklı makaleyi inceleyin.
Aşağıdaki örnekte birkaç yaygın parametre içeren bir Dynamic Link oluşturulur grup:
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 (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 Dynamic Link URL ön ekiniz. CEVAP
Dynamic Link alanı, aşağıdaki örneklerde olduğu gibi görünür:
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 Dynamic Link açıldığında uygulama önizleme sayfasını atlayıp bunun yerine uygulamaya veya mağazaya yönlendirin. Uygulama önizleme sayfası (varsayılan olarak etkindir), Dynamic Links uygulamasını uygulamalarda açtıklarında kullanıcıları en uygun hedefe daha güvenilir bir şekilde gönderebilir; ancak bir 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 işlevinin yalnızca iOS'teki davranışını etkiler. |
DynamicLinkSocialMetaTagParameters | |
---|---|
ünvan | Dynamic Link bir sosyal medya yayınında paylaşıldığında kullanılacak başlık. |
açıklamaMetni | Dynamic Link 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 Dynamic Link öğesini kısaltın
Uzun bir Dynamic Link öğesini kısaltmak için uzun Dynamic Link değerini şuraya geçirin:
shortenURL(url:options:)
ve bir
DynamicLinkComponentsOptions
nesnesi oluşturmak isterseniz
bağlantısını şöyle yapabilirsiniz:
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ı belirtiliyor
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 bir uygulamadır. 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 Dynamic Links için de aynı özel URL şemasını kullanabilirsiniz. Bu durumdaysanız, Aşağıdaki adımları uygulayarak Firebase Dynamic Links için farklı bir URL şeması oluşturabilirsiniz:
- 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; }
- Herhangi bir Dynamic Link oluşturduğunuzda,
gösterir. Bu işlemi Firebase konsolunda, Builder API'de
customScheme
ayarını yaparak, URL'nizdeius
parametresini belirtmek veyaiosCustomScheme
parametresini REST API'si
Sonraki adımlar
Artık Dynamic Links oluşturduğunuza göre uygulamanızı alıp Dynamic Links ve kullanıcılar uygulamayı açtıktan sonra onları uygulamanızda doğru yere yönlendirin.
Uygulamanızda Dynamic Links almak için aşağıdaki dokümanlara bakın: iOS Android, C++ ve Unity.