Initialisieren Sie das NowSDK in Ihrer Anwendung

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 1 Minute Lesedauer
  • Um auf die von NowSDK bereitgestellte Funktionalität zuzugreifen, müssen Sie NowSDK zuerst in Ihrer Anwendung initialisieren.

    Die Initialisierung Mobile SDK ist asynchron. Es wird empfohlen, 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 der Vordergrund angezeigt wird oder eine neue -Scene erkannt wird.

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


    Flow-Diagramm für die MobileSDK-Integration

    Um ServiceNow Mobile SDK in Ihrer iOS-Anwendung zu initialisieren, benötigen Sie einen Autorisierungs-Provider, der NowSDKAuthorizationProvider entspricht, der Ihre JWT-Provider-Informationen verwendet, und einen Delegierten, der DevicePermissionDelegate entspricht.

    Das folgende Beispiel zeigt die Struktur einer SDK-Initialisierung. Weitere Codebeispiele finden Sie in der 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 
    
    }

    Gastbenutzer

    Wenn der aktuelle Benutzer nicht authentifiziert ist, kann er als Gast auf die SDK-Funktionalität zugreifen. Um anzugeben, dass der aktuelle Benutzer ein Gast ist, sollte die Funktion requestAuthorization im Autorisierungsanbieter mit dem Gasttyp AuthorizationTokenabgeschlossen werden, wie unten gezeigt. Der Tokenwert ist in diesem Fall nicht wichtig, solange AuthorizationTokenType auf .guest festgelegtist. 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: "")]) 
        } 
    } 

    Benutzer werden vom SDK abgemeldet

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

    func onLogout() {
      NowSDK.logout()
    }