NowChat API - iOS
NowChat API は、ユーザーが NowChat サービスインスタンスをインスタンス化できるようにするトップレベルのグローバル API です。
NowChat - makeChatService(instanceUrl: URL, delegate: NowChatServiceDelegate?)
指定された構成で NowChatService のインスタンスを作成します。
注:
この関数を呼び出す前に SDK を初期化する必要があり、そうでない場合は完了ブロックが
sdkNotConfigured エラーで呼び出されます。SDK を初期化するには、必要な構成で NowSDK.configure() メソッドを呼び出します。| 名前 | タイプ | Description (説明) |
|---|---|---|
| instanceUrl | URL | チャットサービスを提供する ServiceNow インスタンスの URL。 |
| 代理人 | NowChatServiceDelegate | オプション。NowChatServiceDelegate プロトコルを実装するデリゲートオブジェクト。 |
| タイプ | Description (説明) |
|---|---|
| AnyPublisher<NowChatService、NowServiceError> | 成功した場合は、初期化された NowChatService オブジェクトを返します。失敗した場合は、NowServiceError オブジェクトを返します。 |
次のコード例は、この関数を呼び出す方法を示しています。
….
guard
let jwtUrl = URL(string: "http://xx.xx.xx.xxx:8080"),
let instanceUrl = URL(string: "https://instance.service-now.com") else {
return
}
// AuthorizationProvider – struct conforming to NowSDKAuthorizationProviding protocol
let authorizationProvider = AuthorizationProvider(userEmail: "sdk@servicenow.com", jwtProviderUrl: jwtUrl, clientId: "deb8756b452d201039231ca568f26511")
// PermissionProvider – class conforming to DevicePermissionDelegate protocol
let permissionProvider = PermissionProvider()
let config = NowSDKConfiguration(authorizationProvider: authorizationProvider, permissionDelegate: permissionProvider, logLevel: .debug)
do {
try NowSDK.configure(with: config)
let chat = setup(with: instanceUrl)
} catch {
// Return ConfigurationError.sdkError(error)
}
…..
func initializeChatService(with instanceURL: URL) -> AnyPublisher<NowService, ConfigurationError> {
NowChat.makeChatService(instanceUrl: instanceURL, delegate: nil)
.mapError { .sdkError($0) }
.map { $0 as NowService }
.eraseToAnyPublisher()
}
NowChat - makeChatService(instanceUrl: URL, delegate: NowChatServiceDelegate?, completion: @escaping ((Result<NowChatService, NowServiceError>) -> Void))
指定された構成で NowChatService のインスタンスを作成し、完了すると、指定された完了ハンドラーを呼び出します。
注:
この関数を呼び出す前に SDK を初期化する必要があり、そうでない場合は完了ブロックが
sdkNotConfigured エラーで呼び出されます。SDK を初期化するには、必要な構成で NowSDK.configure() メソッドを呼び出します。| 名前 | タイプ | Description (説明) |
|---|---|---|
| instanceUrl | URL | チャットサービスを提供する ServiceNow インスタンスの URL。 |
| 代理人 | NowChatServiceDelegate | オプション。NowChatServiceDelegate プロトコルを実装するデリゲートオブジェクト。 |
| 完了 | @escaping ((結果<NowChatService, NowServiceError>) -> 無効) | 初期化された NowChatService インスタンス、または初期化が失敗した理由を示す NowServiceError のいずれかを含んで呼び出される完了ハンドラー。 |
| タイプ | 説明 |
|---|---|
| なし |
次のコード例は、この関数を呼び出す方法を示しています。
func initializeChatService() {
NowChat.makeChatService(instanceUrl: instanceUrl, delegate: self) { [weak self] result in
guard let self = self else { return }
switch result {
case .success(let service):
self.chatService = service
case .failure(let error):
debugPrint("Creating the chat service failed with error: \(error)")
}
self.viewState = self.makeViewState()
}
}