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 ö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 Dynamic Links 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ükleyin ve başlatın.
Dynamic Links eklentisini yüklemek için Flutter projenizin kök dizininden aşağıdaki komutu çalıştırın:
flutter pub add firebase_dynamic_links
Android 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 adı 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ştururken bir Dynamic Links 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. Bu sayede, yetkisiz tarafların alanınızdan kontrol etmediğiniz sitelere yönlendiren dinamik bağlantılar oluşturmasını önlersiniz.
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()
öğesine 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/
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 Dynamic Link 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. Bunun için ShortDynamicLinkType.unguessable
değerini buildShortLink()
yöntemine 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 Dinamik Bağlantı Oluşturucu API'sini 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 özel 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 kodlanmalı, HTTP veya HTTPS kullanmalı ve başka bir dinamik bağlantı olmamalıdır. |
setDomainUriPrefix | Firebase konsolunda bulabileceğiniz Dynamic Link URL ön ekiniz. A
Dynamic Link alanları 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üklü değilken 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 bir tanıtım sayfası gösterebilirsiniz. |
setMinimumVersion | Bağlantıyı açabilecek uygulamanızın minimum sürümünün versionCode'u. Yüklü 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 özel URL şeması (uygulamanızın paket kimliği dışında bir şey olarak tanımlanmışsa) |
setIpadFallbackUrl | 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ın tanıtım sayfasını göstermek) bunu 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ı bir sosyal medya gönderisinde 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 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. |
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
iTunes Connect analiz parametreleri. Bu parametreler (`pt`, `at`, `ct`) App Store'a iletilir. |