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 ve Dynamic Links SDK'sını kurun
Firebase bağımlılıklarını kurmak ve yönetmek için Swift Paket Yöneticisi'ni kullanın.
- Xcode'da, uygulama projeniz açıkken File > Add Packages seçeneğine gidin.
- İstendiğinde, Firebase Apple platformları SDK deposunu ekleyin:
- Dinamik Bağlantılar kitaplığını seçin.
- 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.
- Bittiğinde, Xcode otomatik olarak bağımlılıklarınızı arka planda çözmeye ve indirmeye başlayacaktır.
https://github.com/firebase/firebase-ios-sdk
Şimdi, bazı yapılandırma adımlarını gerçekleştirin:
- Firebase konsolunda Dinamik Bağlantılar bölümünü açın.
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.
- Ö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 yeniden yönlendiren Dinamik Bağlantılar oluşturmasını önlersiniz. Belirli URL kalıplarına izin verme konusuna bakın.
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.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
-
UIApplicationDelegate
FirebaseCore
modülünü ve uygulama temsilcinizin kullandığı diğer Firebase modüllerini içe aktarın. Örneğin, Cloud Firestore ve Kimlik Doğrulamayı kullanmak için:Süratli
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Amaç-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Genellikle
App
başlatıcısında veya uygulama temsilcisininapplication(_:didFinishLaunchingWithOptions:)
yönteminde birFirebaseApp
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.
Parametrelerden Dinamik Bağlantı oluşturun
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
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 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
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 durumunuz için, birinin kısa bir bağlantıyı başarılı bir şekilde tahmin etmesinin bir zararı yoksa, dynamicLinkComponentsOptions
özelliğini ayarlayarak yapabileceğiniz, yalnızca benzersiz olması gerektiği kadar uzun olan son ekler oluşturmayı tercih edebilirsiniz:
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); }];
Dinamik Bağlantı parametreleri
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
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. 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ü olmadığında 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 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ü | Bağlantıyı açabilen uygulamanızın 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, bir Dinamik Bağlantının yalnızca bu sayfa olmadan Dinamik Bağlantıları güvenilir bir ş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 ) Play Store'a aktarılır ve 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ısaltın
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:)
öğesine bir DynamicLinkComponentsOptions
nesnesiyle birlikte iletin:
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); }];
Dinamik Bağlantılar için özel bir 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ğ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:
- 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; }
- 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'nizdeius
parametresini belirterek veyaiosCustomScheme
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.