Firebase Dynamic Links Builder API ile kısa veya uzun Dynamic Links oluşturabilirsiniz. Bu API, uzun bir dinamik bağlantıyı veya dinamik bağlantı parametreleri içeren bir nesneyi kabul eder ve aşağıdaki örneklerdeki gibi URL'ler döndürür:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
Firebase ve Dynamic Links SDK'sını ayarlar
Android uygulamanızda dinamik bağlantılar oluşturabilmek için Firebase SDK'sını eklemeniz gerekir. Uygulamanız, dinamik bağlantıları alacak şekilde ayarlanmışsa bu adımları zaten tamamlamışsınızdır ve bu bölümü atlayabilirsiniz.
Henüz yapmadıysanız Flutter için Firebase SDK'larını yükleyip başlatın.
Flutter projenizin kök dizininden aşağıdaki komutu çalıştırarak Dynamic Links eklentisini yükleyin:
flutter pub add firebase_dynamic_linksAndroid uygulaması geliştiriyorsanız Firebase konsolunun Proje ayarları sayfasını açın ve SHA-1 imzalama anahtarınızı belirttiğinizden emin olun. Uygulama Bağlantıları kullanıyorsanız SHA-256 anahtarınızı da belirtin.
Firebase konsolunda Dynamic Links bölümünü açın.
Dinamik Bağlantılarınız için henüz bir alan ayarlamadıysanız Başlayın düğmesini tıklayın ve istemleri uygulayın.
Daha önce bir Dinamik Bağlantılar alanınız varsa bunu not edin. Dinamik Bağlantıları programatik olarak oluşturduğunuzda bir Dinamik Bağlantılar alanı sağlamanız gerekir.

Önerilen: "Diğer" (⋮) menüsünden, derin bağlantılarınızda ve yedek bağlantılarınızda izin verilen URL kalıplarını belirtin. Bunu yaparak yetkisiz tarafların, alanınızdan kontrol etmediğiniz sitelere yönlendiren dinamik bağlantılar oluşturmasını engellersiniz.
Belirli URL kalıplarına izin verme başlıklı makaleyi inceleyin.
Parametrelerden dinamik bağlantı oluşturma
Dinamik Bağlantı oluşturmak için yeni bir DynamicLinkParameters nesnesi oluşturun ve bunu buildLink() veya buildShortLink()'ye iletin.
Aşağıdaki minimum örnek, Android'de com.example.app.android ile ve iOS'te com.example.app.ios uygulamasıyla açılan https://www.example.com/ için uzun bir dinamik bağlantı oluşturur:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);
Kısa bir dinamik bağlantı oluşturmak için DynamicLinkParameters nesnesini buildShortLink()'e iletin. Kısa bağlantı oluşturmak için ağ çağrısı gerekir.
Örneğin:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
Varsayılan olarak, kısa dinamik bağlantılar yalnızca birkaç karakter uzunluğunda soneklerle oluşturulur. Bu durum bağlantıları daha kompakt hale getirse de geçerli bir kısa bağlantının tahmin edilebilme olasılığını da ortaya çıkarır. Bağlantı herkese açık bilgilere yönlendirdiği için genellikle bu durumun bir zararı yoktur.
Ancak kısa bağlantılarınız kullanıcıya özel bilgilere yönlendiriyorsa 17 karakterlik sonekler içeren daha uzun bağlantılar oluşturmanız gerekir. Bu sayede, geçerli bir dinamik bağlantının tahmin edilmesi çok zorlaşır. Bunu yapmak için buildShortLink() yöntemine ShortDynamicLinkType.unguessable değerini iletin:
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
dynamicLinkParams,
shortLinkType: ShortDynamicLinkType.unguessable,
);
Dynamic Link parametreleri
Desteklenen parametrelerden herhangi biriyle dinamik bağlantılar oluşturmak için Dynamic Link Builder API'yi kullanabilirsiniz. API referansına bakın.
Aşağıdaki örnekte, birkaç yaygın parametrenin ayarlandığı bir dinamik bağlantı oluşturuluyor:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(
packageName: "com.example.app.android",
minimumVersion: 30,
),
iosParameters: const IOSParameters(
bundleId: "com.example.app.ios",
appStoreId: "123456789",
minimumVersion: "1.0.1",
),
googleAnalyticsParameters: const GoogleAnalyticsParameters(
source: "twitter",
medium: "social",
campaign: "example-promo",
),
socialMetaTagParameters: SocialMetaTagParameters(
title: "Example of a Dynamic Link",
imageUrl: Uri.parse("https://example.com/image.png"),
),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
Dinamik Bağlantı parametrelerini aşağıdaki yöntemlerle ayarlayabilirsiniz:
| DynamicLink parametreleri | |
|---|---|
| setLink | 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ı, URL kodlaması doğru yapılmalı, HTTP veya HTTPS kullanılmalı ve başka bir dinamik bağlantı olmamalıdır. |
| setDomainUriPrefix | Firebase konsolunda bulabileceğiniz Dynamic Link URL'nizin öneki. Bir
Dinamik Bağlantı alanı aşağıdaki örneklere benzer:
https://example.com/link https://example.page.link |
| AndroidParameters | |
|---|---|
| setFallbackUrl | Uygulama yüklü değilken açılacak bağlantı. Uygulama yüklenmediğinde Play Store'dan yüklemek dışında bir işlem yapmak için bunu belirtin. Örneğin, içeriğin mobil web sürümünü açabilir veya uygulamanız için tanıtım amaçlı bir sayfa gösterebilirsiniz. |
| setMinimumVersion | Uygulamanızın bağlantıyı açabilen minimum sürümünün versionCode'u. Yüklenen uygulama eski bir sürümse kullanıcı, uygulamayı yükseltmek için Play Store'a yönlendirilir. |
| IosParameters | |
|---|---|
| setAppStoreId | Uygulama yüklü değilken kullanıcıları App Store'a yönlendirmek için kullanılan uygulamanızın App Store kimliği |
| setFallbackUrl | 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 bunu belirtin. Örneğin, içeriğin mobil web sürümünü açabilir veya uygulamanız için tanıtım amaçlı bir sayfa gösterebilirsiniz. |
| setCustomScheme | Uygulamanızın paket kimliğinden farklı olarak tanımlanmışsa uygulamanızın özel URL şeması |
| setIpadFallbackUrl | Uygulama yüklü değilken iPad'lerde açılacak bağlantı. Uygulama yüklü değilken App Store'dan uygulamanızı 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 amaçlı bir sayfa göstermek) bu parametreyi belirtin. |
| setIpadBundleId | 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. |
| setMinimumVersion | Bağlantıyı açabilen 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. |
| NavigationInfoParameters | |
|---|---|
| setForcedRedirectEnabled | "1" olarak ayarlanırsa dinamik bağlantı 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 dinamik bağlantıları açtığında onları en uygun hedefe daha güvenilir bir şekilde 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 parametreyle devre dışı bırakabilirsiniz. Bu parametre, dinamik bağlantının davranışını yalnızca iOS'te etkiler. |
| SocialMetaTagParameters | |
|---|---|
| setTitle | Dinamik bağlantı sosyal medya yayınında paylaşıldığında kullanılacak başlık. |
| setDescription | Dinamik bağlantı bir sosyal medya gönderisinde paylaşıldığında kullanılacak açıklama. |
| setImageUrl | Bu bağlantıyla ilgili bir resmin URL'si. Resim en az 300x200 piksel ve 300 KB'tan küçük olmalıdır. |
| GoogleAnalyticsParameters | |
|---|---|
| setSource setMedium setCampaign setTerm setContent |
Google Play Analytics parametreleri. Bu parametreler (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) Play Store'a iletilir ve bağlantı yüküne eklenir. |
| ItunesConnectAnalyticsParameters | |
|---|---|
| setProviderToken setAffiliateToken setCampaignToken |
iTunes Connect analiz parametreleri. Bu parametreler (`pt`, `at`, `ct`) App Store'a iletilir. |