애플리케이션에서 NowSDK 초기화

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기4분
  • NowSDK에서 제공하는 기능에 액세스하려면 먼저 애플리케이션에서 NowSDK를 초기화해야 합니다.

    초기화는 Mobile SDK 비동기식입니다. 응용 프로그램 대리자의 application(application:didFinishLaunchingWithOptions:) 함수에서와 같이 가능한 한 빨리 초기화 프로세스를 시작하는 것이 좋습니다. 초기화는 응용 프로그램 시작당 한 번만 수행하면 됩니다. 포그라운드 또는 새 장면이 감지될 때 다시 초기화할 필요가 없습니다.

    다음 다이어그램은 NowSDK 및 기능 서비스의 초기화 순서를 보여줍니다.


    MobileSDK 통합 플로우 다이어그램

    iOS 애플리케이션에서 초기화 ServiceNow Mobile SDK 하려면 JWT 공급자 정보를 사용하는 NowSDKAuthorizationProviding을 준수하는 권한 부여 공급자와 DevicePermissionDelegate를 준수하는 대리자가 필요합니다.

    다음은 SDK 초기화 구조의 예입니다. 추가 코드 예제는 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 
    
    }

    게스트 사용자

    현재 사용자가 인증되지 않은 경우 게스트로 SDK 기능에 액세스할 수 있습니다. 현재 사용자가 게스트임을 나타내려면 아래와 같이 권한 부여 공급자의 requestAuthorization 함수가 게스트 형식의 AuthorizationToken으로 완료되어야 합니다. 이 경우 AuthorizationTokenType.guest로 설정되어 있는 한 토큰 값은 중요하지 않습니다. 게스트 사용자에 대한 자세한 내용은 다음 문서를 참조하십시오 게스트 사용자 액세스 구성.

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

    SDK에서 사용자 로그아웃

    사용자가 호스트 애플리케이션에서 로그아웃된 후 NowSDK.logout() 메서드를 호출하여 SDK에서 해당 사용자의 ServiceNow 세션과 토큰을 지워야 합니다. 예:

    func onLogout() {
      NowSDK.logout()
    }