NowCoreService 클래스 - iOS
NowCoreService 클래스는 다양한 SDK 기능 서비스에 기본 서비스를 제공합니다. 이 클래스는 NowSDK에 의해서만 인스턴스화되어야 합니다.
Now Analytics 및 NowChat과 같은 기능 서비스는 NowSDK.core 속성을 통해 공유 코어 인스턴스에 액세스할 수 있습니다.
NowCoreService - accessTokenDidFail(for service: NowService)
지정된 서비스의 인스턴스에 대한 ServiceNow API 요청을 승인하는 데 사용되는 액세스 토큰이 더 이상 유효하지 않음을 SDK 코어에 알립니다.
SDK 코어는 유효한 액세스 토큰을 생성할 수 있거나 오류를 반환하는 경우 유효한 액세스 토큰을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 서비스용 | 나우 서비스 | 접근 토큰을 요청하는 피처 서비스입니다. |
| 유형 | 설명 |
|---|---|
| AnyPublisher<NowSDK.AccessToken, AccessTokenProviderError> | 성공: 유효한 접근 토큰입니다. 실패: AccessTokenProviderError 가능한 값:
|
NowSDK.core()?.accessTokenDidFail(for: someService)
.mapError { YourCustomError.accessTokenFailed($0) }
.flatMap(self.handleFailedAccessToken())
.eraseToAnyPublisher()
NowCoreService - accessTokenDidFail(for service: NowService) 비동기 throws
지정된 서비스의 인스턴스에 대한 ServiceNow API 요청을 승인하는 데 사용되는 액세스 토큰이 더 이상 유효하지 않음을 SDK 코어에 알립니다.
SDK 코어는 유효한 액세스 토큰을 생성할 수 있거나 오류를 반환하는 경우 유효한 액세스 토큰을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 서비스용 | 나우 서비스 | 접근 토큰을 요청하는 피처 서비스입니다. |
| 유형 | 설명 |
|---|---|
| NowSDK.AccessToken | 메서드가 성공할 경우 반환됩니다. 유효한 접근 토큰입니다. |
| AccessTokenProviderError | 메서드가 실패할 때 throw됩니다. 접근 토큰을 검색하는 동안 오류가 발생했음을 나타냅니다. 가능한 값:
|
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
do {
let accessToken = try await NowSDK.core()?.accessTokenDidFail(for: someService)
} catch {
self.handleFailedAccessToken(error)
}
NowCoreService - canRequestPermission(_ 권한: DevicePermission)
서비스에서 장치 권한을 요청할 수 있는지 여부에 대해 호스트 응용 프로그램을 쿼리합니다.
이 함수는 권한을 요청하지 않고 디바이스 권한을 쿼리할 수 있는지 여부만 요청합니다. 기능 서비스는 이 함수를 호출하여 원하는 디바이스 권한을 요청할 수 있는지 확인해야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 권한 | DevicePermission | 요청이 이루어지는 장치입니다. 가능한 값(대/소문자 구분):
|
| 유형 | 설명 |
|---|---|
| 부울 | 호스트 응용 프로그램에서 SDK가 지정된 장치 권한을 요청할 수 있는지 여부를 나타내는 플래그입니다. 가능한 값:
|
extension AppDelegate: DevicePermissionDelegate {
func canRequestPermission(_ permission: DevicePermission) -> Bool {
return true
}
}
NowCoreService - isGuestUser(for service: NowService) async
현재 사용자가 게스트 사용자인지 확인합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 서비스용 | 나우 서비스 | 게스트 사용자 검사를 수행할 피처 서비스입니다. |
| 유형 | 설명 |
|---|---|
| 부울 | 현재 사용자가 게스트 사용자인지 여부를 나타내는 플래그입니다. 가능한 값:
|
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
let isGuestUser = await NowSDK.core()?.isGuestUser(for: someService)
NowCoreService - refreshAllSettings()
활성 서버에서 다시 가져와 모든 서비스에 대한 모든 SDK 설정을 새로 고칩니다.
새로 고칠 때마다 업데이트된 SDK 설정 값을 받으려면 함수에서 제공하는 게시자를 NowCoreService - settingsPublisher(for service: NowService) 구독합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 |
NowSDK.core()?.refreshAllSettings()
NowCoreService - refreshSettings(서비스용: NowService)
서버에서 다시 가져와 지정된 서비스에 대한 SDK 설정을 새로 고칩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 서비스용 | 나우 서비스 | 설정 새로 고침을 요청하는 기능 서비스(예: NowChat 또는 NowAnalytics) |
| 유형 | 설명 |
|---|---|
| AnyPublisher<Settings, SettingsError> | 성공: 새로 고친 SDK 설정 사전입니다. 피처 서비스는 반환된 데이터에서 특정 피처와 관련된 설정을 검사해야 합니다. 실패: SettingsError - 발생한 오류의 유형 및 설명입니다. 가능한 값:
|
var subscriptions = Set<AnyCancellable>()
NowSDK.core?.refreshSettings(for: someService)
.sink(receiveCompletion: { completion in
if case .failure(let error) = completion {
print("Refresh failed with error:\ (error)")
}
}, receiveValue: { settings in
print("Received refreshed settings:\ (settings)")
})
.store(in: &subscriptions)
NowCoreService - refreshSettings(for service: NowService) 비동기 throws
서버에서 다시 가져와 지정된 서비스에 대한 SDK 설정을 새로 고칩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 서비스용 | 나우 서비스 | 설정 새로 고침을 요청하는 기능 서비스(예: NowChat 또는 NowAnalytics) |
| 유형 | 설명 |
|---|---|
| 설정 | 메서드가 성공할 경우 반환됩니다. 새로 고친 SDK 설정의 사전입니다. 피처 서비스는 반환된 데이터에서 특정 피처와 관련된 설정을 검사해야 합니다. |
| 설정오류 | 메서드가 실패할 때 throw됩니다. 가능한 값:
|
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
do {
let settings = try await NowSDK.core()?.refreshSettings(for: someService)
print("Received refreshed settings: \(settings)")
} catch {
print("Refresh failed with Settings error: \(error)")
}
NowCoreService - requestAccessToken(for service: NowService)
지정된 서비스에 대한 접근 토큰을 획득합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 서비스용 | 나우 서비스 | 접근 토큰을 요청하는 피처 서비스입니다. |
| 유형 | 설명 |
|---|---|
| AnyPublisher<NowSDK.AccessToken, AccessTokenProviderError> | 성공: NowSDK.AccessToken - 인스턴스에 대한 API 요청을 승인하는 데 사용할 액세스 토큰입니다 ServiceNow . 실패: AccessTokenProviderError - 발생한 오류의 유형 및 설명입니다. 가능한 값:
|
NowSDK.core()?.requestAccessToken(for: someService)
NowCoreService - requestAccessToken(for service: NowService) 비동기 throws
지정된 서비스에 대한 접근 토큰을 획득합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 서비스용 | 나우 서비스 | 접근 토큰을 요청하는 피처 서비스입니다. |
| 유형 | 설명 |
|---|---|
| NowSDK.AccessToken | 메서드가 성공할 경우 반환됩니다. 인스턴스에 대한 API 요청을 승인하는 데 사용할 접근 토큰입니다 ServiceNow . |
| AccessTokenProviderError | 메서드가 실패할 때 throw됩니다. 접근 토큰을 검색하는 동안 오류가 발생했음을 나타냅니다. 가능한 값:
|
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
do {
let accessToken = try await NowSDK.core()?.requestAccessToken(for: someService)
} catch {
self.handleFailedAccessToken(error)
}
NowCoreService - requestNetworkService(for service: NowService)
API 요청을 만드는 데 사용할 수 있는 공유 네트워크 서비스에 대한 참조를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 서비스용 | 나우 서비스 | 네트워크 서비스를 요청하는 피처 서비스입니다. |
| 유형 | 설명 |
|---|---|
| Networkservice | API를 호출하는 데 사용할 수 있는 공유 네트워크 서비스입니다. |
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.
NowSDK.core()?.settingsPublisher(for: chatService)
.sink(receiveCompletion: { completion in
if case .failure(let error) = completion {
// Setting publisher failed with error
}
}, receiveValue: { updatedSettings in
// Receive array of SDK settings for chatService
})
.store(in: &subscriptions)
NowCoreService - requestSettings(forservice: NowService)
지정된 피처 서비스에 대한 SDK 설정을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| forservice | 나우 서비스 | 설정을 요청하는 피처 서비스입니다. |
| 유형 | 설명 |
|---|---|
| AnyPublisher<Settings, SettingsError> | 성공: 설정 - 지정된 피처 서비스에 대한 SDK 설정의 배열입니다. 실패: SettingsError - 관련 오류의 유형 및 설명입니다. 가능한 값:
|
NowSDK.core()?.requestSettings(for: someService)
NowCoreService - requestSettings(for service: NowService) 비동기 throws
지정된 피처 서비스에 대한 SDK 설정을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 서비스용 | 나우 서비스 | 설정을 요청하는 피처 서비스입니다. |
| 유형 | 설명 |
|---|---|
| 설정 | 메서드가 성공할 경우 반환됩니다. 지정된 피처 서비스에 대한 SDK 설정의 배열입니다. |
| 설정오류 | 메서드가 실패할 때 throw됩니다. 관련 오류의 유형 및 설명입니다. 가능한 값:
|
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
do {
let settings = try await NowSDK.core()?.requestSettings(for: someService)
print("Received settings: \(settings)")
} catch {
print("Refresh saved with Settings error: \(error)")
}
NowCoreService - settingsPublisher(for service: NowService)
지정된 서비스의 게시자에 대한 설정을 검색합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 서비스용 | NowService 프로토콜 - iOS | 발행자 구독을 요청하는 피처 서비스입니다. |
| 유형 | 설명 |
|---|---|
| AnyPublisher<Settings, 안 함> | 성공: 설정 - 지정된 피처 서비스에 대한 SDK 설정의 배열입니다. |
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.
NowSDK.core()?.settingsPublisher(for: chatService)
.sink(receiveCompletion: { completion in
if case .failure(let error) = completion {
// Setting publisher failed with error
}
}, receiveValue: { updatedSettings in
// Receive array of SDK settings for chatService
})
.store(in: &subscriptions)