kullanıyorsanız, uygulamanıza Dynamic Links SDK'sını dahil etmeniz ve
handleUniversalLink:
ve dynamicLinkFromCustomSchemeURL:
yöntemlerinden birini kullanarak dinamik bağlantıda aktarılan verileri alabilirsiniz.
Ön koşullar
Başlamadan önce Firebase'i iOS'e eklediğinizden emin olun inceleyebilirsiniz.
Firebase ve Dynamic Links SDK'sını ayarlar
Firebase bağımlılıklarını yükleyip yönetmek için Swift Package Manager'ı kullanın.
- Xcode'da, uygulama projeniz açıkken Dosya > Paket Ekle'yi tıklayın.
- İstendiğinde Firebase Apple platformlar SDK deposunu ekleyin:
- Dynamic Links kitaplığını seçin.
-ObjC
işaretini, hedefinizin derleme ayarlarındaki Diğer Bağlayıcı İşaretleri bölümüne ekleyin.- Dinamik Bağlantılar ile optimum deneyim için Google Analytics'i etkinleştirme Firebase projenize ekleyin ve uygulamanıza Google Analytics için Firebase SDK'sını ekleyin. Şunları yapabilirsiniz: IDFA koleksiyonu olmayan veya IDFA koleksiyonu olan kitaplığı seçin.
- İşlemi tamamladığınızda, Xcode otomatik olarak arka planda tutmalarını sağlar.
https://github.com/firebase/firebase-ios-sdk.git.
Şimdi bazı yapılandırma adımlarını uygulayın:
- Firebase konsolunda Dinamik Bağlantılar'ı açın. bölümüne bakın. İstendiğinde hizmet şartlarını kabul edin.
-
Uygulamanızın App Store Kimliğinin ve Uygulama Kimliği ön ekinizin Ayarlar'da belirtin. Uygulamanızın ayarlarını görüntülemek ve düzenlemek için şu adrese gidin: Firebase projenizin Ayarlar sayfasına gidip iOS uygulamanızı seçin.
Firebase projenizin doğru kullanım için yapılandırıldığından emin olmak için Aşağıdaki URL'yi açarak iOS uygulamanızda Dynamic Links'i seçin:
https://your_dynamic_links_domain/apple-app-site-association
Uygulamanız bağlıysa
apple-app-site-association
dosyası bir referans içerir uygulamanızın Uygulama Kimliği ön eki ve paket kimliğine ekleyin. Örneğin:{"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["NOT /_/*","/*"]}]}}
details
alanı boşsa belirttiğiniz alanı tekrar kontrol edin uygulama kimliği ön ekinizi ekleyin. Uygulama kimliği ön ekinizin, Ekip Kimliğinizle aynı olmayabileceğini unutmayın. -
İsteğe bağlı: Dynamic Links SDK'sının iOS kullanımını devre dışı bırakın yapıştırın.
Varsayılan olarak Dynamic Links SDK'sı, güvenilirliğini artırır. Reklam panosunu kullanarak Dynamic Links, bir Dinamik Bağlantı açtığında, ancak kullanıcının ilk olarak uygulanmasına izin verirseniz kullanıcı, reklamınızı tıkladığında ilk kez açıldığından emin olun.
Bunun olumsuz tarafı, yapıştırma panosunun kullanılması bir öğeyi bildirimi görebilirsiniz. Böylece, kullanıcılar uygulamanızı ilk kez açtıklarında yapıştırma panosunda bir URL varsa uygulaması yapıştırma panosuna erişti. Bu durum karışıklığa neden olabilir.
Bu davranışı devre dışı bırakmak için Xcode projenizin
Info.plist
dosyasını açın veFirebaseDeepLinkPasteboardRetrievalEnabled
anahtarıNO
.
Uygulamanızda Dynamic Links'i açın
- Uygulamanızın Xcode projesinin Info sekmesinde yeni bir Dinamik Bağlantılar için kullanılacak URL türü. Ayarlayın: Tanımlayıcı alanını benzersiz bir değere, URL şeması alanını da grup tanımlayıcınız olmalıdır. Bu, Dynamic Links tarafından kullanılan varsayılan URL şemasıdır.
- Uygulamanızın Xcode projesinin Capabilities (Özellikler) sekmesinde,
İlişkili Alanlar'ı etkinleştirin ve aşağıdakileri İlişkili Alanlar
Alan adları listesi:
applinks:your_dynamic_links_domain
- Belirli bir
tam-özel alan,
Xcode projenizin
Info.plist
dosyasına kaydetmek içinFirebaseDynamicLinksCustomDomains
ve uygulamanızın şuna ayarlayın: Dynamic Links URL önekleri. Örnek:FirebaseDynamicLinksCustomDomains https://example.com/promos https://example.com/links/share FirebaseCore
modülünüUIApplicationDelegate
ve diğer Yetki verdiğiniz uygulamanın kullandığı Firebase modülleri. Örneğin, Cloud Firestore ve Authentication'ı kullanmak için:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Şunu yapılandır:
FirebaseApp
paylaşılan örneğinizinapplication(_:didFinishLaunchingWithOptions:)
yöntemi:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturup bunu eklemeniz gerekir
UIApplicationDelegateAdaptor
veyaApp
NSApplicationDelegateAdaptor
. Uygulama yetkisi kaydırmayı da devre dışı bırakmanız gerekir. Örneğin, daha fazla bilgi için SwiftUI talimatlarına bakın.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- Ardından,
application:continueUserActivity:restorationHandler:
yönteminde, olarak alınan bağlantıları işle Geçiş Bağlantıları (uygulama zaten yüklüyse):Swift
Not: Bu ürün macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { let handled = DynamicLinks.dynamicLinks() .handleUniversalLink(userActivity.webpageURL!) { dynamiclink, error in // ... } return handled }
Objective-C
Not: Bu ürün macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler: #if defined(__IPHONE_12_0) && (__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_12_0) (nonnull void (^)(NSArray<id<UIUserActivityRestoring>> *_Nullable))restorationHandler { #else (nonnull void (^)(NSArray *_Nullable))restorationHandler { #endif // __IPHONE_12_0 BOOL handled = [[FIRDynamicLinks dynamicLinks] handleUniversalLink:userActivity.webpageURL completion:^(FIRDynamicLink * _Nullable dynamicLink, NSError * _Nullable error) { // ... }]; return handled; }
- Son olarak,
application:openURL:options:
içindeki herkese açık kullanıcı adı bağlantıları uygulamanızın özel URL şeması üzerinden alınan trafiktir. Bu yöntem Uygulamanız yükleme işleminden sonra ilk kez açıldığında.Uygulamanızın ilk kez başlatılmasında Dinamik Bağlantı bulunamazsa bu yöntem
DynamicLink
öğesininurl
değerinil
olarak ayarlandı. Bu, SDK'nın eşleşen bir Dinamik Bağlantı bulamadı.Swift
Not: Bu ürün macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.@available(iOS 9.0, *) func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool { return application(app, open: url, sourceApplication: options[UIApplication.OpenURLOptionsKey .sourceApplication] as? String, annotation: "") } func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) { // Handle the deep link. For example, show the deep-linked content or // apply a promotional offer to the user's account. // ... return true } return false }
Objective-C
Not: Bu ürün macOS, Mac Catalyst, tvOS veya watchOS hedeflerinde kullanılamaz.- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *, id> *)options { return [self application:app openURL:url sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey] annotation:options[UIApplicationOpenURLOptionsAnnotationKey]]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { FIRDynamicLink *dynamicLink = [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url]; if (dynamicLink) { if (dynamicLink.url) { // Handle the deep link. For example, show the deep-linked content, // apply a promotional offer to the user's account or show customized onboarding view. // ... } else { // Dynamic link has empty deep link. This situation will happens if // Firebase Dynamic Links iOS SDK tried to retrieve pending dynamic link, // but pending link is not available for this device/App combination. // At this point you may display default onboarding view. } return YES; } return NO; }