Oluşturduğunuz Firebase Dynamic Links'i almak için
uygulamanıza Dynamic Links SDK'sını dahil etmeniz ve
FirebaseDynamicLinks.getDynamicLink()
yöntemini kullanarak uygulamanız
Dinamik Bağlantı'da iletilen verileri alın.
Firebase ve Dynamic Links SDK'sını ayarlar
Aşağıdaki şartları karşılıyorsanız Flutter için Firebase SDK'larını yükleyip başlatın bunu yapmıyoruz.
Flutter projenizin kök dizininden aşağıdaki komutu çalıştırın: komutunu çalıştırın:
flutter pub add firebase_dynamic_links
Android uygulaması oluşturuyorsanız Proje ayarları'nı açın sayfasını açın ve SHA-1'inizi belirttiğinizden emin olun imzalayın. App Links kullanıyorsanız SHA-256 anahtarınızı da belirtin.
Platform entegrasyonu
Kaydolduğunuz platformlar için aşağıdaki platform entegrasyonu adımlarını tamamlayın pek çok yolu vardır.
Android
Android'de, alanınızın derin bağlantılarını yakalayan yeni bir intent filtresi eklemeniz gerekir.
Dinamik Bağlantı, uygulamanız yüklüyse alan adınıza yönlendirir. Bu, uygulamanızın şunları yapması için gereklidir:
Dinamik Bağlantı verilerini Play Store'dan yüklendikten/güncellendikten sonra ve
Devam düğmesi. AndroidManifest.xml
ürününde:
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:host="example.com"
android:scheme="https"/>
</intent-filter>
Kullanıcılar, belirttiğiniz şema ve ana makineye derin bağlantı içeren bir dinamik bağlantıyı açtığında uygulamanız Bağlantıyı işlemek için bu intent filtresiyle etkinliği başlatın.
Bir sonraki adım, imza sertifikasının SHA-256 parmak izinin Firebase konsoluna kayıtlı olduğundan emin olmaktır. görebilirsiniz. SHA-256 parmak izinizi nasıl alacağınız hakkında daha fazla bilgiyi İstemcinizin Kimliklerini Doğrulama sayfası.
Apple platformları
Apple geliştirici hesabı oluşturma zaten bir hesabınız yoksa.
Proje ayarları sayfasında sayfasını kontrol edin, iOS uygulamanızın doğru olduğundan emin olun. App Store Kimliğiniz ve Ekip Kimliğiniz ile yapılandırılmıştır.
Apple Geliştirici sitesinde, uygulamanız için bir temel hazırlık profili oluşturun (İlişkili Alan Adı özelliği etkin olmalıdır.)
Xcode'da aşağıdakileri yapın:
HEDEFLER başlığının altında uygulamanızı açın.
İmzalama ve Özellikler sayfasını açın, Ekibinizin kayıtlı olduğundan emin olun ve Temel Hazırlık Profiliniz ayarlı.
İmzalama ve Özellikler sayfasında İlişkili Alanlar'ı etkinleştirin ve Aşağıdakini İlişkili Alanlar listesine ekleyin (örneği kendi alan adınızla değiştirin):
applinks:example.page.link
Bilgi sayfasında projenize bir URL Türü ekleyin. URL Şemalarını Ayarlama alanını uygulamanızın paket kimliğine ekleyin. (Tanımlayıcı,
Bundle ID
veya istediğiniz gibi yapabilirsiniz.)Firebase projeniz için özel alan oluşturduysanız iOS projenizin
Info.plist
dosyasına Dinamik Bağlantı URL'si ön eki (FirebaseDynamicLinksCustomDomains
tuşunu kullanın)<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://custom.domain.io/path1</string> <string>https://custom.domain.io/path2</string> </array> ...other settings </dict> </plist>
İsteğe bağlı: Dynamic Links SDK'sının iOS yapıştırma panosu kullanımını devre dışı bırakın.
Varsayılan olarak Dynamic Links SDK'sı, güvenilirliğini artırır. Pastel, Dinamik Bağlantılar, bir kullanıcı bir Dinamik Bağlantı açtığında ancak önce uygulamanızı yükledikten sonra, kullanıcı hemen orijinal daha sonra uygulamayı ilk kez açarken bağlantı verilen içerikler teşekkür ederiz.
Bunun olumsuz tarafı, yapıştırma panosunun kullanılması bir öğeyi bildirimi görebilirsiniz. Kullanıcılar sayfanızı ilk açtıklarında uygulamasını kullanıyorsanız, yapıştırma panosu bir Dinamik Bağlantı URL'si içeriyorsa, uygulamanızın yapıştırma panosuna eriştiğini, bunun da zihin bulanıklığı.
Bu davranışı devre dışı bırakmak için Xcode projenizin
Info.plist
dosyasını düzenleyin veFirebaseDeepLinkPasteboardRetrievalEnabled
anahtarınıNO
olarak ayarlayın.
Derin bağlantıları yönetme
Uygulamanızdaki bir Dinamik Bağlantı'yı işlemek için iki senaryo uygulanması gerekir.
Feshedilmiş Durum
Aşağıdaki yöntemleri ayarlayın:
FirebaseDynamicLinks.getInitialLink
-Future<PendingDynamicLinkData?>
döndürürFirebaseDynamicLinks.onLink
-PendingDynamicLinkData?
içeren birStream
döndüren etkinlik işleyici
Android, kapatılmış bir durumda her zaman FirebaseDynamicLinks.getInitialLink
aracılığıyla bağlantıyı alır.
ancak iOS'te bu garanti edilmez. Bu nedenle, her ikisini de aşağıdaki sırayla ayarlamanız gerekir:
uygulamanızın bağlantıyı aldığından emin olmak için:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(options: DefaultFirebaseConfig.platformOptions);
// Check if you received the link via `getInitialLink` first
final PendingDynamicLinkData? initialLink = await FirebaseDynamicLinks.instance.getInitialLink();
if (initialLink != null) {
final Uri deepLink = initialLink.link;
// Example of using the dynamic link to push the user to a different screen
Navigator.pushNamed(context, deepLink.path);
}
FirebaseDynamicLinks.instance.onLink.listen(
(pendingDynamicLinkData) {
// Set up the `onLink` event listener next as it may be received here
if (pendingDynamicLinkData != null) {
final Uri deepLink = pendingDynamicLinkData.link;
// Example of using the dynamic link to push the user to a different screen
Navigator.pushNamed(context, deepLink.path);
}
},
);
runApp(MyApp(initialLink));
}
Uygulama mantığınızda bir bağlantının işlenip işlenmediğini kontrol edebilir ve bir işlem gerçekleştirebilirsiniz. Örneğin:
if (initialLink != null) {
final Uri deepLink = initialLink.link;
// Example of using the dynamic link to push the user to a different screen
Navigator.pushNamed(context, deepLink.path);
}
Arka Plan / Ön Plan Durumu
Uygulama açıkken veya arka planda şunu kullanın: FirebaseDynamicLinks.onLink
alıcı:
FirebaseDynamicLinks.instance.onLink.listen((dynamicLinkData) {
Navigator.pushNamed(context, dynamicLinkData.link.path);
}).onError((error) {
// Handle errors
});
Alternatif olarak, uygulamayı açmak için tam olarak bir Dinamik Bağlantı kullanılıp kullanılmadığını belirlemek istiyorsanız
Bunun yerine getDynamicLink
yöntemini kullanın:
String link = 'https://dynamic-link-domain/ke2Qa';
final PendingDynamicLinkData? initialLink = await FirebaseDynamicLinks.instance.getDynamicLink(Uri.parse(link));
iOS Platformunda Dinamik Bağlantıyı Test Etme
iOS'te bir dinamik bağlantıyı test etmek için gerçek bir cihaz kullanmanız gerekir. Ayrıca uygulamayı sürüm modunda (ör. flutter run --release
) çalıştırmanız gerekir.
Sonlandırılan bir uygulama durumundaki dinamik bağlantı test ediliyorsa (ör. uygulama kapatıldıysa).