Google 致力于为黑人社区推动种族平等。查看具体举措

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

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 ö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 ayarlandıysa, bu adımları zaten tamamlamışsınızdır ve bu bölümü atlayabilirsiniz.

  1. Eğer henüz yapmadıysanız, Android projeye Firebase ekleyin .

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

  2. Kullanılması Firebase Android Bom , senin modülü (uygulama düzeyinde) Gradle dosyası (genellikle Dinamik Linkler Android kütüphanesi için bağımlılık beyan app/build.gradle ).

    Dinamik bağlantılar Optimum deneyim için, tavsiye Google Analytics sağlayan sizin Firebase projesinde ve uygulamanızda Google Analytics'in Firebase SDK ekledi.

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.3.0')
    
        // Declare 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'
    }
    

    Kullanarak Firebase Android Bom , uygulamanızın her zaman Firebase Android kütüphanelerin uyumlu versiyonlarını kullanacak.

    (Alternatif) Bom kullanmadan Firebase kütüphane bağımlılıklarını beyan

    Firebase Malzeme Listesini kullanmamayı seçerseniz, her bir Firebase kitaplık sürümünü bağımlılık satırında belirtmeniz gerekir.

    Eğer uygulamanızda birden Firebase kitaplıkları kullanırsanız, biz çok tüm versiyonlar uyumlu olmasını sağlar kütüphane sürümlerini yönetmek için Bom kullanmanızı öneririz olduğunu unutmayın.

    dependencies {
        // Declare 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:20.1.1'
        implementation 'com.google.firebase:firebase-analytics:19.0.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.3.0')
    
        // Declare 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-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    Kullanarak Firebase Android Bom , uygulamanızın her zaman Firebase Android kütüphanelerin uyumlu versiyonlarını kullanacak.

    (Alternatif) Bom kullanmadan Firebase kütüphane bağımlılıklarını beyan

    Firebase Malzeme Listesini kullanmamayı seçerseniz, her bir Firebase kitaplık sürümünü bağımlılık satırında belirtmeniz gerekir.

    Eğer uygulamanızda birden Firebase kitaplıkları kullanırsanız, biz çok tüm versiyonlar uyumlu olmasını sağlar kütüphane sürümlerini yönetmek için Bom kullanmanızı öneririz olduğunu unutmayın.

    dependencies {
        // Declare 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-ktx:20.1.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:19.0.0'
    }
    
  3. Firebase konsolunda, Dinamik Linkler bölümünü açın.
  4. Hizmet şartlarını henüz kabul etmediyseniz ve Dinamik Bağlantılarınız için bir etki alanı belirlemediyseniz, istendiğinde bunu yapın.

    Halihazırda bir Dynamic Links alan adınız varsa, bunu not alın. Programlı olarak Dinamik Bağlantılar oluşturduğunuzda, bir Dinamik Bağlantılar etki alanı sağlamanız gerekir.

  5. Önerilen: Derin bağlantılar ve yedek linkleri izin URL modellerini belirtin. Bunu yaparak, yetkisiz tarafların, alanınızdan kontrol etmediğiniz sitelere yeniden yönlendiren Dinamik Bağlantılar oluşturmasını önlersiniz. Bkz belirli URL modelleri İzin .

Firebase konsolunu kullanın

Kolayca bir sosyal medya yayını gibi bir şey kullanılabilecek bir bağlantı oluşturmak için iki test amaçlı veya pazarlama ekibi için, tek bir Dinamik Linki oluşturmak istiyorsanız, en basit yolu ziyaret etmek olurdu Firebase konsolu ve bir tane oluşturun adım adım formu manuel olarak takip edin.

Dinamik Linki oluşturmak için, yeni bir oluşturmak DynamicLink Oluşturucu yöntemleri ile dinamik bağlantı parametrelerini belirterek, onun Builder ile nesneyi. Ardından, çağrı buildDynamicLink veya buildShortDynamicLink .

Aşağıdaki minimum örnek için uzun Dinamik Linki oluşturur https://www.example.com/ Android ve uygulaması üzerinde Android uygulaması ile açılan com.example.ios iOS'da:

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();

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

Kısa bir Dinamik Linki oluşturmak için bir inşa DynamicLink aynı şekilde, ve sonra çağrı buildShortDynamicLink . Kısa bir bağlantı oluşturmak, bir ağ çağrısı, bu yüzden yerine doğrudan dönen bağlantı gerektirir buildShortDynamicLink döner bir Task yaparken istek tamamlamalar kısa bağlantı kullanılabilir hale getirir. Örneğin:

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
                    // ...
                }
            }
        });

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.ktx.component1 and
    // com.google.firebase.dynamiclinks.ktx.component2

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

Varsayılan olarak, kısa Dinamik Bağlantılar, birinin geçerli bir Dinamik Bağlantı tahmin etmesini son derece olası kılan 17 karakterlik bağlantı son ekleriyle oluşturulur. , Kullanımı durumda, birinin başarıyla kısa bağlantıyı tahmin bir zarar varsa, sen geçirerek yapabileceğiniz, hangi benzersiz olması sürece gerekli olduğu sadece son ekleri oluşturmak için tercih edebilirsiniz ShortDynamicLink.Suffix.SHORT için buildShortDynamicLink yöntemiyle :

Java

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

Kotlin+KTX

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

Desteklenen parametrelerden herhangi biriyle Dinamik Bağlantılar oluşturmak için Dynamic Link Builder API'sini kullanabilirsiniz. Bkz API başvurusuna detayları için.

Aşağıdaki örnek, birkaç ortak parametre seti ile bir Dinamik Bağlantı oluşturur:

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()

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!"
    }
}

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

Dinamik Bağlantı parametreleri
setLink

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

setDomainUriÖnek Firebase konsolunda bulabileceğiniz Dinamik Bağlantı URL önekiniz. Aşağıdaki örneklerde olduğu gibi bir dinamik bağlantı alanı görünüyor:
https://example.com/link
https://example.page.link
AndroidParametreler
setFallbackUrl Uygulama yüklenmediğinde açılacak bağlantı. İçeriğin mobil web sürümünü açmak veya uygulamanız için bir tanıtım sayfası görüntülemek gibi uygulama yüklü olmadığında Play Store'dan uygulamanızı yüklemek dışında bir şey yapmak için bunu belirtin.
setMinimumVersion versionCode bağlantı açarak uygulamanızın asgari versiyonunun. Yüklenen uygulama daha eski bir sürümse, kullanıcı uygulamayı yükseltmek için Play Store'a götürülür.
IosParameters
setAppStoreId Uygulamanızın, uygulama yüklü olmadığında kullanıcıları App Store'a göndermek için kullanılan App Store Kimliği
setFallbackUrl Uygulama yüklenmediğinde açılacak bağlantı. İçeriğin mobil web sürümünü açmak veya uygulamanız için bir tanıtım sayfası görüntülemek gibi uygulama yüklü olmadığında uygulamanızı App Store'dan yüklemek dışında bir şey yapmak için bunu belirtin.
setÖzelŞema Uygulamanızın paket kimliğinden başka bir şey olarak tanımlanmışsa, uygulamanızın özel URL şeması
setIpadFallbackUrl Uygulama yüklenmediğinde iPad'lerde açılacak bağlantı. İçeriğin web sürümünü açmak veya uygulamanız için bir tanıtım sayfası görüntülemek gibi uygulama yüklü olmadığında uygulamanızı App Store'dan yüklemek dışında bir şey yapmak 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ğlanmalıdır.
setMinimumVersion Sürüm numarası bağlantı açarak uygulamanızın asgari versiyonunun. Bu bayrak, açıldığında uygulamanıza iletilir ve uygulamanız onunla ne yapacağına karar vermelidir.
NavigationInfoParameters
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ı daha güvenilir bir şekilde en uygun hedefe gönderebilir; ancak, bu sayfa olmadan yalnızca Dinamik Bağlantıları güvenilir bir şekilde açabilen uygulamalarda bir 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 etkiler.
SosyalMetaEtiketParametreleri
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 resmin URL'si. Resim en az 300x200 piksel ve 300 KB'den küçük olmalıdır.
GoogleAnalyticsParametreleri
setSource
setOrta
setKampanya
setTerim
setİçerik
Google Play analiz parametreleri. Bu parametreler ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) sıra bağlantı yüküne eklenen olarak Play Store'a aktarılır.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
iTunes Connect analiz parametreleri. Bu parametreler ( pt , at , ct ) App Store geçirilir.

Uzun Dinamik Linki kısaltmak için, kullanan Dynamic Link URL'sini belirtmek setLongLink yerine diğer oluşturucu yöntemleri ile parametre belirlenmesi:

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
                    // ...
                }
            }
        });

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.ktx.component1 and
    // com.google.firebase.dynamiclinks.ktx.component2

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