Android'de Dinamik Bağlantılar Oluşturun

Firebase Dynamic Links Builder API'sini kullanarak 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

Android uygulamanızda Dinamik Bağlantılar oluşturabilmeniz 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.

  1. Henüz yapmadıysanız Android projenize Firebase'i ekleyin .

    Uygulamanızı kaydederken SHA-1 imzalama anahtarınızı belirtin. Uygulama Bağlantılarını kullanıyorsanız SHA-256 anahtarınızı da belirtin.

  2. Modülünüzde (uygulama düzeyi) Gradle dosyanızda (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle ), Dinamik Bağlantılar için bağımlılığı ekleyin Android için kütüphane. Kitaplık sürümlerini kontrol etmek için Firebase Android BoM'yi kullanmanızı öneririz.

    Dinamik Bağlantılarla en iyi deneyimi elde etmek için Firebase projenizde Google Analytics'i etkinleştirmenizi ve Google Analytics için Firebase SDK'sını uygulamanıza eklemenizi öneririz.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.8.0"))
    
        // Add the dependencies for the Dynamic Links and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-dynamic-links'
        implementation 'com.google.firebase:firebase-analytics'
    }
    

    Firebase Android BoM'yi kullandığınızda uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.

    (Alternatif) BoM'yi kullanmadan Firebase kitaplığı bağımlılıklarını ekleyin

    Firebase BoM'yi kullanmamayı tercih ederseniz her Firebase kitaplığı sürümünü bağımlılık satırında belirtmeniz gerekir.

    Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için tüm sürümlerin uyumlu olmasını sağlayan BoM'yi kullanmanızı önemle tavsiye ettiğimizi unutmayın.

    dependencies {
        // Add the dependencies for the Dynamic Links and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-dynamic-links:21.2.0'
        implementation 'com.google.firebase:firebase-analytics:21.6.1'
    }
    
    Kotlin'e özgü bir kütüphane modülü mü arıyorsunuz? Ekim 2023'ten itibaren (Firebase BoM 32.5.0) hem Kotlin hem de Java geliştiricileri ana kütüphane modülüne güvenebilecekler (ayrıntılar için bu girişimle ilgili SSS'ye bakın).
  3. Firebase konsolunda Dinamik Bağlantılar bölümünü açın.
  4. Hizmet şartlarını henüz kabul etmediyseniz ve Dinamik Bağlantılarınız için bir alan adı belirlemediyseniz istendiğinde bunu yapın.

    Zaten bir Dinamik Bağlantılar alanınız varsa bunu not edin. Programlı olarak Dinamik Bağlantılar oluşturduğunuzda bir Dinamik Bağlantılar alanı sağlamanız gerekir.

  5. Ö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 yönlendirme yapan Dinamik Bağlantılar oluşturmasını önlersiniz. Bkz. Belirli URL kalıplarına izin verme .

Firebase konsolunu kullanma

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 ederek.

Dinamik Bağlantı oluşturmak için, Oluşturucu yöntemleriyle Dinamik Bağlantı parametrelerini belirterek, Oluşturucusu ile yeni bir DynamicLink nesnesi oluşturun. Ardından buildDynamicLink veya buildShortDynamicLink çağırın.

Aşağıdaki minimal örnek, Android'de Android uygulamanızla ve iOS'ta com.example.ios uygulamasıyla açılan https://www.example.com/ adresine uzun bir Dinamik Bağlantı oluşturur:

Kotlin+KTX

val dynamicLink = Firebase.dynamicLinks.dynamicLink {
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    // Open links with this app on Android
    androidParameters { }
    // Open links with com.example.ios on iOS
    iosParameters("com.example.ios") { }
}

val dynamicLinkUri = dynamicLink.uri

Java

DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        // Open links with this app on Android
        .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
        // Open links with com.example.ios on iOS
        .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build())
        .buildDynamicLink();

Uri dynamicLinkUri = dynamicLink.getUri();

Kısa bir Dinamik Bağlantı oluşturmak için aynı şekilde bir DynamicLink oluşturun ve ardından buildShortDynamicLink öğesini çağırın. Kısa bir bağlantı oluşturmak bir ağ çağrısı gerektirir; dolayısıyla, bağlantıyı doğrudan döndürmek yerine buildShortDynamicLink , istek tamamlandığında kısa bağlantıyı kullanılabilir hale getiren bir Task döndürür. Örneğin:

Kotlin+KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync {
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    // Set parameters
    // ...
}.addOnSuccessListener { (shortLink, flowchartLink) ->
    // You'll need to import com.google.firebase.dynamiclinks.component1 and
    // com.google.firebase.dynamiclinks.component2

    // Short link created
    processShortLink(shortLink, flowchartLink)
}.addOnFailureListener {
    // Error
    // ...
}

Java

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        // Set parameters
        // ...
        .buildShortDynamicLink()
        .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
            @Override
            public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                if (task.isSuccessful()) {
                    // Short link created
                    Uri shortLink = task.getResult().getShortLink();
                    Uri flowchartLink = task.getResult().getPreviewLink();
                } else {
                    // Error
                    // ...
                }
            }
        });

Varsayılan olarak kısa Dinamik Bağlantılar, birisinin geçerli bir Dinamik Bağlantıyı tahmin etmesini son derece düşük bir ihtimal haline getiren 17 karakterlik bağlantı sonekleriyle oluşturulur. Kullanım durumunuz açısından, birinin kısa bağlantıyı başarılı bir şekilde tahmin etmesinin bir zararı yoksa, yalnızca benzersiz olması gereken uzunlukta son ekler oluşturmayı tercih edebilirsiniz; bunu ShortDynamicLink.Suffix.SHORT buildShortDynamicLink yöntemine ileterek yapabilirsiniz. :

Kotlin+KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) {
    // Set parameters
    // ...
}

Java

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        // ...
        .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT);
        // ...

Desteklenen parametrelerden herhangi biriyle Dinamik Bağlantılar oluşturmak için Dinamik Bağlantı Oluşturucu API'sini kullanabilirsiniz. Ayrıntılar için API referansına bakın.

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

Kotlin+KTX

val dynamicLink = Firebase.dynamicLinks.dynamicLink { // or Firebase.dynamicLinks.shortLinkAsync
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    androidParameters("com.example.android") {
        minimumVersion = 125
    }
    iosParameters("com.example.ios") {
        appStoreId = "123456789"
        minimumVersion = "1.0.1"
    }
    googleAnalyticsParameters {
        source = "orkut"
        medium = "social"
        campaign = "example-promo"
    }
    itunesConnectAnalyticsParameters {
        providerToken = "123456"
        campaignToken = "example-promo"
    }
    socialMetaTagParameters {
        title = "Example of a Dynamic Link"
        description = "This link works whether the app is installed or not!"
    }
}

Java

DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        .setAndroidParameters(
                new DynamicLink.AndroidParameters.Builder("com.example.android")
                        .setMinimumVersion(125)
                        .build())
        .setIosParameters(
                new DynamicLink.IosParameters.Builder("com.example.ios")
                        .setAppStoreId("123456789")
                        .setMinimumVersion("1.0.1")
                        .build())
        .setGoogleAnalyticsParameters(
                new DynamicLink.GoogleAnalyticsParameters.Builder()
                        .setSource("orkut")
                        .setMedium("social")
                        .setCampaign("example-promo")
                        .build())
        .setItunesConnectAnalyticsParameters(
                new DynamicLink.ItunesConnectAnalyticsParameters.Builder()
                        .setProviderToken("123456")
                        .setCampaignToken("example-promo")
                        .build())
        .setSocialMetaTagParameters(
                new DynamicLink.SocialMetaTagParameters.Builder()
                        .setTitle("Example of a Dynamic Link")
                        .setDescription("This link works whether the app is installed or not!")
                        .build())
        .buildDynamicLink();  // Or buildShortDynamicLink()

Dinamik Bağlantı parametrelerini aşağıdaki yöntemlerle ayarlayabilirsiniz:

Dinamik Bağlantı parametreleri
setLink

Uygulamanızın açılacağı bağlantı. Uygulamanızın işleyebileceği, uygulamaya özel mantığı (kullanıcıya bir kuponla kredi vermek veya bir karşılama ekranı görüntülemek gibi) başlatan, genellikle uygulamanın içeriği veya yükü gibi bir URL belirtin. Bu bağlantı iyi biçimlendirilmiş bir URL olmalı, URL'si düzgün şekilde kodlanmış olmalı, HTTP veya HTTPS kullanmalı ve başka bir Dinamik Bağlantı olamaz.

setDomainUriPrefix Firebase konsolunda bulabileceğiniz Dinamik Bağlantı URL'si ön ekiniz. Dinamik Bağlantı alanı 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üklenmediğinde Play Store'dan uygulamanızı yüklemek dışında bir şey yapmak (örneğin, içeriğin mobil web sürümünü açmak veya uygulamanız için bir tanıtım sayfası görüntülemek) için bunu belirtin.
setMinimumVersion Uygulamanızın bağlantıyı açabilecek minimum sürümünün versionCode . Yüklenen uygulama daha eski bir sürümse kullanıcı, uygulamayı yükseltmesi için Play Store'a yönlendirilir.
IosParametreleri
setAppStoreId Uygulamanız yüklü olmadığında kullanıcıları App Store'a göndermek için kullanılan uygulamanızın App Store Kimliği
setFallbackUrl Uygulama yüklenmediğinde açılacak bağlantı. Uygulama yüklenmediğinde App Store'dan uygulamanızı yüklemek dışında bir şey yapmak için (örneğin, içeriğin mobil web sürümünü açmak veya uygulamanız için bir tanıtım sayfası görüntülemek) bunu belirtin.
setÖzelŞema Uygulamanızın paket kimliğinden farklı bir şey olarak tanımlanmışsa, uygulamanızın özel URL şeması
setIpadFallbackUrl Uygulama yüklü olmadığında iPad'lerde açılacak bağlantı. Uygulama yüklenmediğinde App Store'dan uygulamanızı yüklemek dışında, içeriğin web sürümünü açmak veya uygulamanız için bir tanıtım sayfası görüntülemek gibi başka bir işlem yapmak için bunu belirtin.
setIpadBundleId Bağlantıyı açmak için iPad'lerde kullanılacak iOS uygulamasının paket kimliği. Uygulamanın, Firebase konsolunun Genel Bakış sayfasından projenize bağlanması gerekir.
setMinimumVersion Uygulamanızın bağlantıyı açabilecek minimum sürümünün sürüm numarası . Bu bayrak, açıldığında uygulamanıza iletilir ve uygulamanızın bununla ne yapacağına karar vermesi gerekir.
NavigasyonBilgiParametreleri
setForcedRedirectEnabled '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ı en uygun hedefe daha güvenilir şekilde gönderebilir; ancak bu sayfa olmadan yalnızca Dinamik Bağlantıları güvenilir bir şekilde açabilen uygulamalarda Dinamik Bağlantının açılmasını bekliyorsanız bu parametreyle devre dışı bırakabilirsiniz. Bu parametre Dinamik Bağlantının davranışını yalnızca iOS'ta etkileyecektir.
SocialMetaTagParametreler
setTitle Dinamik Bağlantı bir sosyal gönderide paylaşıldığında kullanılacak başlık.
setAçıklama Dinamik Bağlantı bir sosyal gönderide paylaşıldığında kullanılacak açıklama.
setImageUrl Bu bağlantıyla ilgili bir görselin URL'si. Resim en az 300x200 piksel ve 300 KB'tan küçük olmalıdır.
GoogleAnalyticsParametreleri
setKaynak
setMedium
setKampanya
setTerm
setİçerik
Google Play analiz parametreleri. Bu parametreler ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) Play Store'a aktarıldığı gibi bağlantı yüküne de eklenir.
ItunesConnectAnalyticsParametreler
setProviderToken
setAffiliateToken
setKampanyaTokenı
iTunes Connect analiz parametreleri. Bu parametreler ( pt , at , ct ) App Store'a aktarılır.

Uzun bir Dinamik Bağlantıyı kısaltmak için diğer oluşturucu yöntemleriyle parametreleri ayarlamak yerine setLongLink kullanarak Dinamik Bağlantının URL'sini belirtin:

Kotlin+KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync {
    longLink = Uri.parse(
        "https://example.page.link/?link=" +
            "https://www.example.com/&apn=com.example.android&ibn=com.example.ios",
    )
}.addOnSuccessListener { (shortLink, flowChartLink) ->
    // You'll need to import com.google.firebase.dynamiclinks.component1 and
    // com.google.firebase.dynamiclinks.component2

    // Short link created
    processShortLink(shortLink, flowChartLink)
}.addOnFailureListener {
    // Error
    // ...
}

Java

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLongLink(Uri.parse("https://example.page.link/?link=https://www.example.com/&apn=com.example.android&ibn=com.example.ios"))
        .buildShortDynamicLink()
        .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
            @Override
            public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                if (task.isSuccessful()) {
                    // Short link created
                    Uri shortLink = task.getResult().getShortLink();
                    Uri flowchartLink = task.getResult().getPreviewLink();
                } else {
                    // Error
                    // ...
                }
            }
        });