Initialisieren Sie das NowSDK in Ihrer Anwendung

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 1 Minute Lesedauer
  • Um auf die vom NowSDK bereitgestellten Funktionen zuzugreifen, müssen Sie das NowSDK zuerst in Ihrer Anwendung initialisieren.

    Die Initialisierung Mobile SDK erfolgt asynchron. Es empfiehlt sich, den Initialisierungsprozess so früh wie möglich zu starten, z. B. in der Funktion application(application:didFinishLaunchingWithOptions:) des Anwendungsdelegierten. Die Initialisierung muss nur einmal pro Anwendungsstart erfolgen. Eine erneute Initialisierung ist nicht erforderlich, wenn Sie in den Vordergrund versetzt werden oder eine neue Stimmung erkannt wird.

    Das folgende Diagramm zeigt die Initialisierungssequenz für NowSDK und Funktionsservices:


    Flow-Diagramm für MobileSDK-Integration

    Um ServiceNow Mobile SDK in Ihrer iOS-Anwendung zu initialisieren, benötigen Sie einen Autorisierungsanbieter gemäß NowSDKAuthorization Bereitstellung, der Ihre JWT-Anbieterinformationen verwendet, und einen Delegierten gemäß DevicePermissionDelegate.

    Im Folgenden finden Sie ein Beispiel für die Struktur einer SDK-Initialisierung. Weitere Codebeispiele finden Sie unter Beispielanwendung ServiceNow Mobile SDK.

    // 
    
    //  JWTProvider.swift 
    
    import Foundation 
    import NowSDK 
    
    class JWTProvider: NowSDKAuthorizationProviding { 
      let token: String 
    
      init(token: String) { 
        self.token = token 
      } 
    
      func requestAuthorization(for instanceUrl: URL, completion: @escaping ([AuthorizationToken]?) -> Void) { 
        completion([AuthorizationToken(type: .jwt, token: token)]) 
      } 
    } 
    //
    //  PermissionProvider.swift 
    
    import Foundation
    import NowSDK 
    
    class PermissionProvider: DevicePermissionDelegate { 
      var isUserPermissionAllowed: Bool { Bool.random() } 
    
      func canRequestPermission(_ permission: DevicePermission) -> Bool { 
        guard isUserPermissionAllowed else { false } 
        return true 
      } 
    }
    //  
    //  AppDelegate.swift  
    
    import Foundation  
    import NowSDK  
    
    @main 
    class AppDelegate: UIResponder, UIApplicationDelegate { 
      func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 
    
        let jwtProvider = JWTProvider(token: "a_valid_token”) 
        let permissionDelegate = PermissionProvider()  
        let logLevel: NowLogLevel = .debug 
    
        let config = NowSDKConfiguration(authorizationProvider: jwtProvider, permissionDelegate: permissionProvider, logLevel: logLevel)  
    
        do { 
          try NowSDK.configure(with: config) 
        } catch { 
          // Handle 'error' 
        }
    
        return true 
    
    }

    Gastanwender

    Wenn der aktuelle Benutzer nicht authentifiziert ist, kann er als Gast auf die SDK-Funktionalität zugreifen. Um anzugeben, dass der aktuelle Anwender ein Gast ist, muss die Funktion requestAuthorization im Autorisierungsanbieter mit dem Gasttyp AuthorizationTokenabgeschlossen werden (siehe unten). Der Tokenwert ist in diesem Fall nicht wichtig, solange AuthorizationTokenType auf .guestfestgelegt ist. Weitere Informationen zu Gastbenutzern finden Sie unter Konfigurieren Sie den Gastbenutzerzugriff.

    //  GuestTokenProvider.swift 
    import Foundation 
    import NowSDK 
    class GuestTokenProvider: NowSDKAuthorizationProviding { 
        func requestAuthorization(for instanceUrl: URL,  
            completion: @escaping ([AuthorizationToken]?) -> Void) { 
            completion([AuthorizationToken(type: .guest, token: "")]) 
        } 
    } 

    Abmelden von Anwendern aus dem SDK

    Nachdem ein Benutzer von einer Hostanwendung abgemeldet wurde, sollten Sie die Methode NowSDK.logout() aufrufen, um die ServiceNow -Sitzungen und Token dieses Benutzers aus dem SDK zu löschen. Zum Beispiel:

    func onLogout() {
      NowSDK.logout()
    }