Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

İOS'ta Dinamik Bağlantılar Alın

Oluşturduğunuz handleUniversalLink: dynamicLinkFromCustomSchemeURL: almak için, uygulamanıza Dynamic Links SDK'sını handleUniversalLink: ve uygulamanız yüklenirken Dynamic dynamicLinkFromCustomSchemeURL: geçirilen verileri almak için handleUniversalLink: ve dynamicLinkFromCustomSchemeURL: yöntemlerini dynamicLinkFromCustomSchemeURL: gerekir.

Önkoşullar

Firebase Dynamic Links, iOS 8 veya daha yenisini gerektirir. Uygulamanızda iOS 7'yi hedefleyebilirsiniz, ancak uygulama iOS 8 veya daha yeni bir sürümde çalışmıyorsa tüm Firebase Dynamic Links SDK çağrıları işlemsiz olacaktır.

  1. Firebase'i iOS projenize ekleyin . Podfile şu kapsülü ekleyin:
    pod 'Firebase/Analytics'
    pod 'Firebase/DynamicLinks'
  2. pod install çalıştırın ve oluşturulan .xcworkspace dosyasını açın.
  3. Firebase konsolunda Dinamik Bağlantılar bölümünü açın. Yapmanız istenirse hizmet şartlarını kabul edin.
  4. Uygulamanızın App Store Kimliğinin ve Uygulama Kimliği önekinizin uygulamanızın ayarlarında belirtildiğinden emin olun. Uygulamanızın ayarlarını görüntülemek ve düzenlemek için Firebase projenizin Ayarlar sayfasına gidin ve iOS uygulamanızı seçin.

    Aşağıdaki URL'yi açarak, Firebase projenizin iOS uygulamanızda Dynamic Links'i kullanmak için doğru şekilde yapılandırıldığını onaylayabilirsiniz:

    https://your_dynamic_links_domain/apple-app-site-association

    Uygulamanız bağlıysa apple-app-site-association dosyası, uygulamanızın Uygulama Kimliği önekine ve paket kimliğine bir referans içerir. Örneğin:

    {"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}

    details alanı boşsa, Uygulama Kimliği önekinizi belirttiğinizden emin olun. Uygulama Kimliği ön ekinizin Ekip Kimliğinizle aynı olmayabileceğini unutmayın.

  5. İsteğe bağlı : Dynamic Links SDK'sının iOS çalışma alanı kullanımını devre dışı bırakın.

    Varsayılan olarak, Dynamic Links SDK, yükleme sonrası derin bağlantıların güvenilirliğini artırmak için çalışma alanını kullanır. Çalışma alanını kullanarak Dynamic Links, bir kullanıcı bir Dinamik Bağlantıyı açtığında ancak önce uygulamanızı yüklemesi gerektiğinde, kullanıcının uygulamayı yüklemeden sonra ilk kez açarken hemen orijinal bağlantılı içeriğe gidebilmesini sağlayabilir.

    Bunun dezavantajı, çalışma alanının kullanımının iOS 14 ve sonraki sürümlerde bir bildirimi tetiklemesidir. Bu nedenle, kullanıcılar uygulamanızı ilk kez açtıklarında çalışma alanı bir Dinamik Bağlantı URL'si içeriyorsa, uygulamanızın çalışma alanına eriştiğine dair bir bildirim görürler ve bu da kafa karışıklığına neden olabilir.

    Bu davranışı devre dışı bırakmak için Xcode projenizin Info.plist dosyasını düzenleyin ve FirebaseDeepLinkPasteboardRetrievalEnabled anahtarını NO .

  1. Uygulamanızın Xcode projesinin Bilgi sekmesinde, Dinamik Bağlantılar için kullanılacak yeni bir URL türü oluşturun. Tanımlayıcı alanını benzersiz bir değere ve URL şeması alanını, Dinamik Bağlantılar tarafından kullanılan varsayılan URL şeması olan paket tanımlayıcınız olacak şekilde ayarlayın.
  2. Uygulamanızın Xcode projesinin Yetenekler sekmesinde İlişkili Etki Alanları'nı etkinleştirin ve aşağıdaki İlişkilendirilmiş Etki Alanları listesine ekleyin:
    applinks:your_dynamic_links_domain
  3. Tamamen özel bir alanla Dinamik Bağlantılar almak istiyorsanız, Xcode projenizin Info.plist dosyasında FirebaseDynamicLinksCustomDomains adlı bir anahtar oluşturun ve bunu uygulamanızın Dynamic Links URL öneklerine ayarlayın. Örneğin:
    FirebaseDynamicLinksCustomDomains
    
      https://example.com/promos
      https://example.com/links/share
    
    
  4. Sizin de Firebase modülü içe UIApplicationDelegate :

    Swift

    import Firebase

    Amaç-C

    @import Firebase;
  5. Genellikle uygulamanızın uygulamasında bir FirebaseApp paylaşılan örneği yapılandırın application:didFinishLaunchingWithOptions: yöntem:

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Amaç-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  6. Ardından, application:continueUserActivity:restorationHandler: yöntem, uygulama zaten yüklendiğinde Evrensel Bağlantılar olarak alınan bağlantıları işleyin (iOS 9 ve daha yeni sürümlerde):

    Swift

    func application(_ application: UIApplication, continue userActivity: NSUserActivity,
                     restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
      let handled = DynamicLinks.dynamicLinks().handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in
        // ...
      }
    
      return handled
    }

    Amaç-C

    - (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;
    }
  7. Son olarak, application:openURL:sourceApplication:annotation: (iOS 8 ve daha eski) ve application:openURL:options: (iOS 9 ve üstü) yöntemler, uygulamanızın özel URL şeması aracılığıyla alınan bağlantıları application:openURL:sourceApplication:annotation: . Bu yöntemler, uygulamanız iOS 8 ve daha eski sürümlerde bir bağlantı aldığında ve herhangi bir iOS sürümüne yüklendikten sonra uygulamanız ilk kez açıldığında çağrılır.

    Dinamik Bağlantı, uygulamanızın ilk başlatılışında (iOS'un herhangi bir sürümünde) bulunamazsa, bu yöntem, FIRDynamicLink url nil ayarlanarak çağrılır ve SDK'nın eşleşen bir bekleyen Dinamik Bağlantı bulamadığını gösterir.

    Swift

    @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
    }

    Amaç-C

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