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ı parametreleri 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
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 ayarlandıysa 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 Dynamic Links eklentisini yüklemek için 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ı'nı kullanıyorsanız SHA-256 anahtarınızı da belirtin.
Firebase konsolunda Dinamik Bağlantılar bölümünü açın.
Dinamik Bağlantılarınız için henüz bir alan adı oluşturmadıysanız Başlayın düğmesini tıklayın ve talimatları uygulayın.
Zaten bir Dinamik Bağlantılar alanınız varsa bu alanı 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ı engellemiş olursunuz. 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 minimal örnekte, Android'de com.example.app.android
ve iOS'te com.example.app.ios
uygulamasıyla açılan https://www.example.com/
için uzun bir dinamik bağlantı oluşturulmaktadır:
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()
'a 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 Dynamic Links, yalnızca birkaç karakter uzunluğunda son eklerle oluşturulur. Bu, bağlantıların daha kompakt olmasını sağlar ancak geçerli bir kısa bağlantının tahmin edilme olasılığını da doğurur. Bağlantı herkese açık bilgilere yönlendirdiği için genellikle bu tür bağlantıların paylaşılmasında bir sakınca yoktur.
Ancak kısa bağlantılarınız kullanıcıya özel bilgilere yönlendiriyorsa 17 karakterlik son eklerle daha uzun bağlantılar oluşturmanız gerekir. Bu sayede, geçerli bir Dinamik Bağlantıyı tahmin etme olasılığı çok düşük olur. Bunun için ShortDynamicLinkType.unguessable
değerini buildShortLink()
yöntemine iletin:
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
dynamicLinkParams,
shortLinkType: ShortDynamicLinkType.unguessable,
);
Dinamik Bağlantı parametreleri
Desteklenen parametrelerden herhangi birini kullanarak Dinamik Bağlantı oluşturmak için Dinamik Bağlantı Oluşturucu API'yi kullanabilirsiniz. API referansına bakın.
Aşağıdaki örnekte, birkaç yaygın parametre grubu içeren bir dinamik bağlantı oluşturulmaktadır:
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 uygulamaya özgü mantığı (ör. kullanıcıya kupon verme veya karşılama ekranı gösterme) başlatan uygulamanın içeriği ya da yükü olur. Bu bağlantı, iyi biçimlendirilmiş bir URL olmalıdır, doğru şekilde URL kodlamalıdır, HTTP veya HTTPS kullanmalıdır ve başka bir dinamik bağlantı olamaz. |
setDomainUriPrefix | Firebase konsolunda bulabileceğiniz Dynamic Links URL ön ekiniz. Dinamik Bağlantı 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üklenmemişken uygulamanızı Play Store'dan yüklemek dışında bir işlem yapmak (ör. içeriğin mobil web sürümünü açmak veya uygulamanızla ilgili tanıtım sayfası göstermek) için bunu belirtin. |
setMinimumVersion | Uygulamanızın bağlantıyı açabilen minimum sürümünün versionCode değeri. Yüklü uygulama eski bir sürümse kullanıcı, uygulamayı güncellemek için Play Store'a yönlendirilir. |
IosParameters | |
---|---|
setAppStoreId | Uygulamanız yüklü değilken kullanıcıları App Store'a göndermek 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 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ızla ilgili tanıtım sayfası göstermek) için bunu belirtin. |
setCustomScheme | Uygulamanızın paket kimliğinden farklı bir şekilde 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 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ızla ilgili tanıtım sayfası göstermek) için 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ğlanmış olmalıdır. |
setMinimumVersion | Uygulamanızın bağlantıyı açabilecek minimum sürümünün sürüm numarası. Bu işaret, uygulamanız açıldığında uygulamanıza iletilir ve uygulamanızın bu işaretle ne yapacağını belirlemesi gerekir. |
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ı istiyorsanız bu parametreyle sayfayı devre dışı bırakabilirsiniz. Bu parametre, Dinamik Bağlantı'nın davranışını yalnızca iOS'te etkiler. |
SocialMetaTagParameters | |
---|---|
setTitle | Dinamik bağlantı sosyal medyada paylaşıldığında kullanılacak başlık. |
setDescription | Dinamik Bağlantı bir sosyal yayında 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 aktarılır ve bağlantı yüküne eklenir. |
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
iTunes Connect analiz parametreleri. Bu parametreler ("pt", "at", "ct") App Store'a iletilir. |