Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Erhalten Sie dynamische Links unter iOS

Um die von Ihnen erstellten Firebase Dynamic Links zu erhalten, müssen Sie das Dynamic Links SDK in Ihre App aufnehmen und die Methoden handleUniversalLink: und dynamicLinkFromCustomSchemeURL: , wenn Ihre App dynamicLinkFromCustomSchemeURL: , um die im Dynamic Link übergebenen Daten dynamicLinkFromCustomSchemeURL: .

Voraussetzungen

Für Firebase Dynamic Links ist iOS 8 oder höher erforderlich. Sie können iOS 7 in Ihrer App als Ziel festlegen, aber alle SDK-Aufrufe von Firebase Dynamic Links sind No-Ops, wenn die App nicht unter iOS 8 oder neuer ausgeführt wird.

  1. Fügen Sie Ihrem iOS-Projekt Firebase hinzu . Nehmen Sie den folgenden Pod in Ihr Podfile :
    pod 'Firebase/Analytics'
    pod 'Firebase/DynamicLinks'
  2. Führen Sie die pod install und öffnen Sie die erstellte .xcworkspace Datei.
  3. Öffnen Sie in der Firebase-Konsole den Abschnitt Dynamische Links . Akzeptieren Sie die Nutzungsbedingungen, wenn Sie dazu aufgefordert werden.
  4. Stellen Sie sicher, dass die App Store ID Ihrer App und Ihr App ID-Präfix in den Einstellungen Ihrer App angegeben sind. Um die Einstellungen Ihrer App anzuzeigen und zu bearbeiten, rufen Sie die Seite Einstellungen Ihres Firebase-Projekts auf und wählen Sie Ihre iOS-App aus.

    Sie können bestätigen, dass Ihr Firebase-Projekt ordnungsgemäß für die Verwendung dynamischer Links in Ihrer iOS-App konfiguriert ist, indem Sie die folgende URL öffnen:

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

    Wenn Ihre App verbunden ist, enthält die apple-app-site-association einen Verweis auf das App-ID-Präfix und die Bundle-ID Ihrer App. Beispielsweise:

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

    Wenn das details leer ist, überprüfen Sie, ob Sie Ihr App ID-Präfix angegeben haben. Beachten Sie, dass Ihr App-ID-Präfix möglicherweise nicht mit Ihrer Team-ID übereinstimmt.

  5. Optional : Deaktivieren Sie die Verwendung des iOS-Pasteboards durch das Dynamic Links SDK.

    Standardmäßig verwendet das Dynamic Links SDK das Pasteboard, um die Zuverlässigkeit von Deep Links nach der Installation zu verbessern. Mithilfe des Pasteboards können dynamische Links sicherstellen, dass der Benutzer beim ersten Öffnen einer App nach der Installation sofort zum ursprünglichen verknüpften Inhalt wechseln kann, wenn ein Benutzer einen dynamischen Link öffnet, aber zuerst Ihre App installieren muss.

    Der Nachteil dabei ist, dass die Verwendung des Pasteboards eine Benachrichtigung unter iOS 14 und höher auslöst. Wenn Benutzer Ihre App zum ersten Mal öffnen und das Pasteboard eine Dynamic Link-URL enthält, wird eine Benachrichtigung angezeigt, dass Ihre App auf das Pasteboard zugegriffen hat, was zu Verwirrung führen kann.

    Um dieses Verhalten zu deaktivieren, bearbeiten Sie die Datei Info.plist Ihres Xcode-Projekts und setzen Sie den Schlüssel FirebaseDeepLinkPasteboardRetrievalEnabled auf NO .

  1. Erstellen Sie auf der Registerkarte " Info" des Xcode-Projekts Ihrer App einen neuen URL-Typ, der für dynamische Links verwendet werden soll. Setzen Sie das Feld " ID" auf einen eindeutigen Wert und das Feld " URL-Schema" auf Ihre Bundle-ID. Dies ist das von dynamischen Links verwendete Standard-URL-Schema.
  2. In der Registerkarte Funktionen Ihrer App Xcode - Projekt aktivieren Verwandte Domains und die folgenden Angaben der Associated Domains Liste hinzu:
    applinks:your_dynamic_links_domain
  3. Wenn Sie dynamische Links mit einer vollständig benutzerdefinierten Domäne empfangen Info.plist , erstellen Sie in der Info.plist Datei Ihres Xcode-Projekts einen Schlüssel mit dem Namen FirebaseDynamicLinksCustomDomains und setzen Sie ihn auf die URL-Präfixe Ihrer App für dynamische Links. Zum Beispiel:
    FirebaseDynamicLinksCustomDomains
    
      https://example.com/promos
      https://example.com/links/share
    
    
  4. Importieren Sie das Firebase-Modul in Ihr UIApplicationDelegate :

    Schnell

    import Firebase

    Ziel c

    @import Firebase;
  5. Konfigurieren Sie eine freigegebene FirebaseApp Instanz, normalerweise in der application:didFinishLaunchingWithOptions: Ihrer App application:didFinishLaunchingWithOptions: method:

    Schnell

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

    Ziel c

    // Use Firebase library to configure APIs
    [FIRApp configure];
  6. Als nächstes behandeln Sie in der application:continueUserActivity:restorationHandler: method Links, die als universelle Links empfangen wurden, wenn die App bereits installiert ist (unter iOS 9 und neuer):

    Schnell

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

    Ziel 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. Schließlich können Sie in den application:openURL:sourceApplication:annotation: (iOS 8 und älter) und application:openURL:options: (iOS 9 und application:openURL:sourceApplication:annotation: ) Links verarbeiten, die über das benutzerdefinierte URL-Schema Ihrer App empfangen wurden. Diese Methoden werden aufgerufen, wenn Ihre App unter iOS 8 und älter einen Link erhält und wenn Ihre App nach der Installation unter einer beliebigen iOS-Version zum ersten Mal geöffnet wird.

    Wenn die Dynamic Link nicht auf Ihrer App zum ersten Mal starten (auf einer beliebigen Version von iOS) gefunden, wird diese Methode mit der heißen FIRDynamicLink ‚s url Satz zu nil , was darauf hinweist , dass das SDK eine passende ausstehenden Dynamic Link zu finden ist fehlgeschlagen.

    Schnell

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

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