애플리케이션에서 NowSDK 초기화
NowSDK에서 제공하는 기능에 액세스하려면 먼저 애플리케이션에서 NowSDK를 초기화해야 합니다.
초기화는 비동기식입니다 Mobile SDK . 초기화 프로세스는 애플리케이션 대리자의 application(application:didFinishLaunchingWithOptions:) 함수에서와 같이 가능한 한 빨리 시작하는 것이 좋습니다. 초기화는 애플리케이션 시작당 한 번만 수행해야 합니다. 전경에 있거나 새 장면이 감지될 때 다시 초기화할 필요가 없습니다.
다음 다이어그램은 NowSDK 및 기능 서비스의 초기화 시퀀스를 보여줍니다.
iOS 애플리케이션에서 초기화 ServiceNow Mobile SDK 하려면 JWT 공급자 정보를 사용하는 NowSDKAuthorizationProvideing을 준수하는 권한 부여 공급자와 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()
}