Flutter uygulamasında Dinamik Bağlantılar oluşturma

Firebase Dynamic Links Builder API ile kısa veya uzun Dinamik Bağlantılar oluşturabilirsiniz. Bu API, uzun bir Dinamik Bağlantı ya da Dinamik Bağlantı parametreleri içeren bir nesneyi kabul eder ve aşağıdaki örneklere benzer URL'leri döndürür:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

Android uygulamanızda Dinamik Bağlantılar oluşturabilmeniz için önce Firebase SDK'sını eklemeniz gerekir. Uygulamanız Dynamic Links alacak şekilde ayarlandıysa bu adımları zaten tamamlamışsınızdır ve bu bölümü atlayabilirsiniz.

  1. Henüz yapmadıysanız Flutter için Firebase SDK'larını yükleyin ve başlatın.

  2. Flutter projenizin kök dizininden aşağıdaki komutu çalıştırarak Dynamic Links eklentisini yükleyin:

    flutter pub add firebase_dynamic_links
    
  3. Android uygulaması oluşturuyorsanız Firebase konsolunun Proje ayarları sayfasını açın ve SHA-1 imzalama anahtarınızı belirttiğinizden emin olun. App Links kullanıyorsanız SHA-256 anahtarınızı da belirtin.

  4. Firebase konsolunda Dinamik Bağlantılar bölümünü açın.

    1. Dynamic Links için henüz bir alan adı oluşturmadıysanız Başlayın düğmesini tıklayın ve istemleri uygulayın.

      Zaten bir Dynamic Links alan adınız varsa bunu not edin. Programatik olarak Dynamic Links oluştururken bir Dynamic Links alan adı sağlamanız gerekir.

    2. Ö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. Böylece 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 bölümüne bakın.

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 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() öğesine iletin. Kısa bağlantıyı oluşturmak için ağ çağrısı gerekir. Örnek:

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'ler yalnızca birkaç karakter uzunluğundaki son eklerle oluşturulur. Bu yöntem, bağlantıları daha kompakt hale getirse de, geçerli bir kısa bağlantıyı tahmin etme olanağı da sunar. Bağlantı kamuya açık bilgilere yönlendirdiğinden, genellikle bunun zararı olmaz.

Bununla birlikte, kısa bağlantılarınız kullanıcıya özgü bilgilere yönlendiriyorsa bir kullanıcının geçerli bir Dinamik Bağlantı'yı tahmin etme olasılığını düşüren 17 karakterlik son eklere sahip daha uzun bağlantılar oluşturmanız gerekir. Bunun için ShortDynamicLinkType.unguessable öğesini buildShortLink() yöntemine geçirin:

final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
    dynamicLinkParams,
    shortLinkType: ShortDynamicLinkType.unguessable,
);

Desteklenen parametrelerden herhangi biriyle Dinamik Bağlantılar oluşturmak için Dynamic Link Builder API'yi kullanabilirsiniz. API referansını inceleyin.

Aşağıdaki örnekte, birkaç ortak parametrenin ayarlandığı bir Dinamik Bağlantı oluşturulur:

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ü gibi uygulamaya özel mantığı (kullanıcıya kuponla kredi verme veya karşılama ekranı gösterme gibi) başlatacaktır. Bu bağlantı iyi biçimlendirilmiş bir URL olmalı, doğru şekilde URL kodlamalı olmalı, HTTP ya da HTTPS kullanmalı ve başka bir Dinamik Bağlantı olmamalıdır.
setDomainUriPrefix Firebase konsolunda bulabileceğiniz Dinamik Bağlantı URL'si ön ekiniz. Dinamik Bağlantı alan adı, aşağıdaki örneklere benzer:
https://example.com/link
https://example.page.link
AndroidParametreleri
setFallbackUrl 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 (örneğin, 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 ayarla Uygulamanızın bağlantıyı açabilen minimum sürümünün versionCode'u. Yüklü uygulama daha eski bir sürümse kullanıcı, uygulamayı yükseltmesi için Play Store'a yönlendirilir.
IosParameters
setAppStoreId 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)
setFallbackUrl 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 (örneğin, 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.
setCustomScheme Uygulamanızın özel URL şeması (uygulamanızın paket kimliğinden farklı bir şekilde tanımlanırsa)
setIpadFallbackUrl 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.
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.
MinimumSürüm ayarla 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.
NavigationInfoParameters
setForcedRedirectEnabled Politika "1" olarak ayarlanırsa Dinamik Bağlantı açıldığında uygulama önizleme sayfasını atlayıp bunun yerine uygulamaya veya mağazaya yönlendirin. Uygulama önizleme sayfası (varsayılan olarak etkindir), uygulamalarda Dynamic Links'i açtıklarında kullanıcıları en uygun hedefe daha güvenilir şekilde gönderebilir. Ancak, Dynamic Link'in yalnızca bu sayfa olmadan güvenilir bir şekilde açabilen uygulamalarda Dynamic Link'in açılmasını bekliyorsanız bu parametreyle devre dışı bırakabilirsiniz. Bu parametre, Dinamik Bağlantı'nın yalnızca iOS'teki davranışını etkiler.
SocialMetaTagParameters
setTitle Dinamik Bağlantı, bir sosyal medya yayınında paylaşıldığında kullanılacak başlık.
setDescription Dinamik Bağlantı, bir sosyal medya yayınında paylaşıldığında kullanılacak açıklama.
kümeResmi URL'si Bu bağlantıyla ilgili bir resmin URL'si. Resim en az 300x200 piksel, en fazla 300 KB boyutunda 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.