SFSafariViewController-Unterstützung für iOS SDK 3.2+ sfsafariviewcontroller-support-on-ios-sdk-3.2

NOTE
Der Inhalt dieser Seite dient nur Informationszwecken. Für die Verwendung dieser API ist eine aktuelle Lizenz von Adobe erforderlich. Eine unbefugte Anwendung ist nicht zulässig.

Aufgrund von Sicherheitsanforderungen MÜSSEN einige Anmeldeseiten von MVPD in einem SFSafariViewController anstatt in Webansichten angezeigt werden.

Einige MVPDs erfordern, dass ihre Anmeldeseiten in einem sicheren Browser-Steuerelement wie SFSafariViewController angezeigt werden. Sie blockieren aktiv Webansichten. Um sich bei ihnen authentifizieren zu können, müssen wir SVC verwenden.

Kompatibilität compatiblity

Ab iOS SDK-Version 3.1 zeigt das AccessEnabler SDK basierend auf der Serverkonfiguration automatisch die Anmeldeseite für bestimmte MVPDs in einem SFSafariViewController an.

Version 3.1 des SDK zeigt automatisch den SFSafariViewController vom Stamm-View-Controller der Anwendung an. Dies vereinfacht zwar die Verwaltung der Anmeldeseiten für Implementoren, es gibt jedoch Fälle, in denen die Präsentation des SFSafariViewController vom Root-View-Controller aufgrund der speziellen Implementierung der App nicht möglich ist (wie ein Modal-Controller, der bereits sichtbar ist).

In solchen Fällen bietet die Version 3.2 dem Programmierer die Möglichkeit, das SVC manuell zu verwalten.

Manuelles SVC-Management manual-svc-management

Um SVC manuell zu verwalten, muss der Implementor die folgenden Schritte ausführen:

  1. call setOptions(["handleSVC":true]) nach der Initialisierung von AccessEnabler (stellen Sie sicher, dass dieser Aufruf durchgeführt wird, bevor die Authentifizierung beginnt). Dies ermöglicht die "manuelle"SVC-Verwaltung. Das SDK stellt die SVC nicht automatisch bereit, sondern ruft bei Bedarf stattdessen navigate(toUrl:{url} useSVC:true).

  2. den optionalen Rückruf implementieren navigateToUrl:useSVC: Innerhalb der Implementierung müssen Sie mithilfe der SFSafariViewController -Instanz mithilfe der angegebenen URL eine svc-Instanz erstellen und sie auf dem Bildschirm darstellen:

    code language-obj-c
    func navigate(toUrl url: String!, useSVC: Bool) {
        svc =  SFSafariViewController(url: URL(string: url)!)
        svc.delegate = self
        myController.present(svc, animated: true)
        }
    

    Hinweise:

    • Sie können den SFSafariViewController beliebig anpassen. Beispielsweise können Sie in iOS 11 und höher die Bezeichnung "Fertig"in "Abbrechen"ändern.
    • Um die svc schließen zu können, benötigen Sie einen Verweis darauf. Erstellen Sie ihn bitte nicht im Rahmen von navigateToUrl:useSVC
    • Verwenden Sie Ihren eigenen Ansichtscontroller für "myController".
  3. In der Delegate-Implementierung Ihrer Anwendung von application(_app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey: Any]) -> Bool, fügen Sie Code hinzu, um den svc zu schließen. Sie sollten dort bereits Code haben, der Aufrufe accessEnabler.handleExternalURL(). Fügen Sie Folgendes hinzu:

    code language-obj-c
    if(svc != nil) {
        svc.dismiss(animated: true)
    }
    

    Auch hier ist svc ein Verweis auf den SFSafariViewController, den Sie in Schritt 2 erstellt haben.

  4. Implementierung safariViewControllerDidFinish(_ controller: SFSafariViewController) von SFSafariViewControllerDelegate um zu erfassen, wann der Benutzer die svc mithilfe der Schaltfläche "Fertig"abgebrochen hat. In dieser Funktion müssen Sie Folgendes aufrufen, um das SDK darüber zu informieren, dass die Authentifizierung abgebrochen wurde:

    code language-obj-c
    accessEnabler.setSelectedProvider(nil)
    
recommendation-more-help
3f5e655c-af63-48cc-9769-2b6803cc5f4b