Перейти до основного вмісту
ДокументаціяiOS
Версія 0.2.0iOS 15.1 або новіша

iOS SDK: Довідник API

iOS: Нативний API для підписаного транспорту, стану UI віджета, повторів і надійної офлайн-доставки.

На цій сторінці

Конфігурація

apiOrigin

Обов'язковий

У продакшені API origin має бути HTTPS. Нативні клієнти дозволяють HTTP localhost для розробки.

apiOrigin
URL

integrationId

Обов'язковий

Публічний ідентифікатор інтеграції з каналу віджета DobroDesk.

integrationId
String

accountScope

Обов'язковий

Стабільний ключ клієнта або облікового запису для ізоляції сесії та черги.

accountScope
String

locale

Значення за замовчуванням: en

Локаль віджета для контенту. Web за замовчуванням використовує auto; нативні bundle зараз підтримують en, uk, de та es.

locale
String = "en"

credentialProvider

Обов'язковий

Функція бекенду, що повертає короткоживучий підписаний JWT клієнта. Секрет підпису не можна зберігати в застосунку.

credentialProvider
() async throws -> String

turnstileToken

Опційний токен Turnstile для інтеграцій, яким він потрібен.

turnstileToken
String?

pollInterval

Значення за замовчуванням: 1

Обмежений інтервал опитування під час очікування асинхронної відповіді асистента.

pollInterval
TimeInterval = 1

Життєвий цикл і розмова

DobroDeskClient

Створює клієнт і перевіряє конфігурацію інтеграції.

DobroDeskClient
init(configuration: DobroDeskConfiguration, outbox: any DobroDeskOutboxStore = ..., pendingSessionStarts: any DobroDeskPendingSessionStartStore = ..., sessionStore: any DobroDeskSessionStore = ..., pendingAttachmentSends: any DobroDeskPendingAttachmentStore = ..., pendingAttachmentOperations: any DobroDeskPendingAttachmentOperationStore = ..., transport: any DobroDeskHTTPTransport = ...)
Помилки
  • invalid-config
  • outbox-corrupt

events

Підписує host на канонічні події SDK. Для звільнення listener використовуйте subscription, callback відписки або stream subscription, який повертає платформа.

events
events() -> AsyncStream<DobroDeskEvent>

state getters

Повертає поточний стан віджета без підписки.

state getters
currentSession(), currentConfiguration(), currentWidgetVoiceSettings(), currentWidgetWorkspacePublicName(), currentWidgetChannels(), currentWidgetNavigation(), currentWidgetAvailability(), currentSnapshot(), currentWidgetContent(), currentLoadingState(), currentCustomerMessageId(), shouldWaitForAssistant()

loadWidgetAppearance

Завантажує перевірений appearance або content bundle нативного віджета.

loadWidgetAppearance
loadWidgetAppearance() async throws -> [String: JSONValue]
Помилки
  • network
  • http
  • session-expired

loadWidgetContent

Завантажує перевірений appearance або content bundle нативного віджета.

loadWidgetContent
loadWidgetContent() async throws -> DobroDeskWidgetContentSnapshot
Помилки
  • network
  • http
  • field-invalid

startSession

Починає розмову з ідемпотентним першим повідомленням.

startSession
startSession(_ input: DobroDeskSessionStartInput) async throws -> DobroDeskSession

Параметри

messageStringОбов'язковий
Обмежений JSON-контекст для явно зареєстрованих дій хоста.
idempotencyKeyString?
Обмежений JSON-контекст для явно зареєстрованих дій хоста.
prefillPrefill?
Обмежений JSON-контекст для явно зареєстрованих дій хоста.
metadataJSON object?
Обмежений JSON-контекст для явно зареєстрованих дій хоста.
timeZoneString?
Обмежений JSON-контекст для явно зареєстрованих дій хоста.
Помилки
  • network
  • field-invalid
  • idempotency-conflict
  • outbox-corrupt

resumeSession

Відновлює стан облікового запису або серверну сесію.

resumeSession
resumeSession() async throws -> DobroDeskSession?
Помилки
  • network
  • session-expired
  • outbox-corrupt

restoreSession

Відновлює переданий прийнятий доказ сесії та завантажує її snapshot.

restoreSession
restoreSession(_ restored: DobroDeskSession) async throws -> DobroDeskSnapshot
Помилки
  • session-expired
  • network

refresh

Завантажує поточний знімок розмови.

refresh
refresh() async throws -> DobroDeskSnapshot
Помилки
  • network
  • session-expired
  • message-rejected

waitForAssistant

Опитує з обмеженим інтервалом, доки робота асистента не завершиться або не спливе час очікування.

waitForAssistant
waitForAssistant(timeout: TimeInterval = 30, afterMessageCount: Int? = nil) async throws -> DobroDeskSnapshot

Параметри

timeoutnumberЗначення за замовчуванням: 30s
Обмежений інтервал опитування під час очікування асинхронної відповіді асистента.
afterMessageCountnumber?
Обмежений JSON-контекст для явно зареєстрованих дій хоста.
Помилки
  • realtime-unavailable
  • network
  • session-expired

sendMessage

Надсилає повідомлення та повертає його статус доставки.

sendMessage
sendMessage(_ input: DobroDeskMessageInput) async throws -> DobroDeskAcceptedMessage

Параметри

textStringОбов'язковий
Обмежений JSON-контекст для явно зареєстрованих дій хоста.
idempotencyKeyString?
Обмежений JSON-контекст для явно зареєстрованих дій хоста.
Помилки
  • network
  • idempotency-conflict
  • conversation-stale
  • rate-limited
  • message-rejected

attachments

Надсилає повідомлення та повертає його статус доставки.

attachments
startSession(_:attachments:), sendMessage(_:attachments:)
Помилки
  • attachment_policy_failed
  • attachment_rate_limited
  • session-expired
  • outbox-corrupt

performOperation / performNativeOperation

Надає типізовані операції форм, client tools, вкладень і commerce через нативний рушій.

performOperation / performNativeOperation
performOperation(requestJson: String) async throws -> String
Помилки
  • field-invalid
  • unsupported
  • session-expired
  • http

NativeOperation

Повертає декодований JSON із нативного мосту операцій. Обробляйте перевірку, транспорт, завершення сесії та відмову сервера як окремі результати.

NativeOperation
operation: "request-client-tool" | "complete-client-tool" | "client-tool-status" | "submit-form" | "procedure-action" | "attachment-intents" | "upload-attachment" | "list-orders" | "order-detail" | "create-commerce-proposal" | "confirm-commerce-proposal" | "commerce-proposal"
Помилки
  • field-invalid
  • unsupported
  • session-expired
  • http

submit-form request

Надсилає обмежені значення форми розмови, яку надав сервер. Ідентифікатор запиту та значення перевіряються до підписаного нативного запиту.

submit-form request
{ operation: "submit-form"; requestId: string; values: JsonObject }

Параметри

requestIdstringОбов'язковий
Надсилає обмежені значення форми розмови, яку надав сервер. Ідентифікатор запиту та значення перевіряються до підписаного нативного запиту.
valuesJsonObjectОбов'язковий
Надсилає обмежені значення форми розмови, яку надав сервер. Ідентифікатор запиту та значення перевіряються до підписаного нативного запиту.
Повертає
JsonValue
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected

request-client-tool request

Запитує дозволений client tool, підтверджує його результат або читає його стан. Payload інструмента плоский, обмежений і відхиляє чутливі назви полів.

request-client-tool request
{ operation: "request-client-tool"; input: ClientToolRequest }

Параметри

toolNamestringОбов'язковий
Запитує дозволений client tool, підтверджує його результат або читає його стан. Payload інструмента плоский, обмежений і відхиляє чутливі назви полів.
basisMessageIdstringОбов'язковий
Запитує дозволений client tool, підтверджує його результат або читає його стан. Payload інструмента плоский, обмежений і відхиляє чутливі назви полів.
inputClientToolPayloadОбов'язковий
Запитує дозволений client tool, підтверджує його результат або читає його стан. Payload інструмента плоский, обмежений і відхиляє чутливі назви полів.
Повертає
JsonValue
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

complete-client-tool request

Запитує дозволений client tool, підтверджує його результат або читає його стан. Payload інструмента плоский, обмежений і відхиляє чутливі назви полів.

complete-client-tool request
{ operation: "complete-client-tool"; input: ClientToolResult }

Параметри

callIdstringОбов'язковий
Запитує дозволений client tool, підтверджує його результат або читає його стан. Payload інструмента плоский, обмежений і відхиляє чутливі назви полів.
outputClientToolPayloadОбов'язковий
Запитує дозволений client tool, підтверджує його результат або читає його стан. Payload інструмента плоский, обмежений і відхиляє чутливі назви полів.
Повертає
JsonValue
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

client-tool-status request

Запитує дозволений client tool, підтверджує його результат або читає його стан. Payload інструмента плоский, обмежений і відхиляє чутливі назви полів.

client-tool-status request
{ operation: "client-tool-status"; callId: string }

Параметри

callIdstringОбов'язковий
Запитує дозволений client tool, підтверджує його результат або читає його стан. Payload інструмента плоский, обмежений і відхиляє чутливі назви полів.
Повертає
JsonValue
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

procedure-action request

Виконує дію серверної процедури з ключем ідемпотентності та очікуваною версією workflow.

procedure-action request
{ operation: "procedure-action"; input: ProcedureActionInput }

Параметри

actionstart | answer | availability | select | calendar_date | back | confirm | declineОбов'язковий
Виконує дію серверної процедури з ключем ідемпотентності та очікуваною версією workflow.
valuestringОбов'язковий
Виконує дію серверної процедури з ключем ідемпотентності та очікуваною версією workflow.
idempotencyKeystring (16-128 characters)Обов'язковий
Виконує дію серверної процедури з ключем ідемпотентності та очікуваною версією workflow.
procedureId / runId / expectedUpdatedAtstring?
Виконує дію серверної процедури з ключем ідемпотентності та очікуваною версією workflow.
locale"en" | "uk" | "de" | "es"?
Локаль віджета для контенту. Web за замовчуванням використовує auto; нативні bundle зараз підтримують en, uk, de та es.
stepId / parameterId / timeZonestring?
Виконує дію серверної процедури з ключем ідемпотентності та очікуваною версією workflow.
nativeCommerceUitrue?
Виконує дію серверної процедури з ключем ідемпотентності та очікуваною версією workflow.
Повертає
JsonValue
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected
  • idempotency-conflict

attachment-intents request

Створює intent для завантаження та передає вибрані локальні файли з урахуванням лімітів розміру, типу, URI і політик SDK.

attachment-intents request
{ operation: "attachment-intents"; messageId: string; attachments: AttachmentDescriptor[] }

Параметри

messageIdstringОбов'язковий
Створює intent для завантаження та передає вибрані локальні файли з урахуванням лімітів розміру, типу, URI і політик SDK.
attachmentsAttachmentDescriptor[] (1-5; each up to 10 MiB)Обов'язковий
Створює intent для завантаження та передає вибрані локальні файли з урахуванням лімітів розміру, типу, URI і політик SDK.
Повертає
JsonValue
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

upload-attachment request

Створює intent для завантаження та передає вибрані локальні файли з урахуванням лімітів розміру, типу, URI і політик SDK.

upload-attachment request
{ operation: "upload-attachment"; intent: AttachmentUploadIntent; fileUri: string; mimeType: string }

Параметри

intentAttachmentUploadIntentОбов'язковий
Створює intent для завантаження та передає вибрані локальні файли з урахуванням лімітів розміру, типу, URI і політик SDK.
fileUrifile:// or content:// URIОбов'язковий
Створює intent для завантаження та передає вибрані локальні файли з урахуванням лімітів розміру, типу, URI і політик SDK.
mimeTypestringОбов'язковий
Створює intent для завантаження та передає вибрані локальні файли з урахуванням лімітів розміру, типу, URI і політик SDK.
Повертає
JsonValue
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

list-orders request

Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.

list-orders request
{ operation: "list-orders"; query?: CommerceOrderQuery }

Параметри

query.cursorstring?
Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.
query.storestring?
Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.
Повертає
JsonValue
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited

order-detail request

Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.

order-detail request
{ operation: "order-detail"; orderRef: string }

Параметри

orderRefstringОбов'язковий
Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.
Повертає
JsonValue
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

create-commerce-proposal request

Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.

create-commerce-proposal request
{ operation: "create-commerce-proposal"; input: CommerceProposalInput; idempotencyKey: string }

Параметри

input.actionId"shopify_order_cancel"Обов'язковий
Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.
input.selection.storeReferencestringОбов'язковий
Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.
input.selection.orderReferencestringОбов'язковий
Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.
input.selection.lineItems{ lineItemReference: string; quantity: number }[]?
Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.
idempotencyKeystring (16-128 characters)Обов'язковий
Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.
Повертає
JsonValue
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • idempotency-conflict

confirm-commerce-proposal request

Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.

confirm-commerce-proposal request
{ operation: "confirm-commerce-proposal"; proposalId: string; input: { confirmed: true }; idempotencyKey: string }

Параметри

proposalIdstringОбов'язковий
Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.
idempotencyKeystring (16-128 characters)Обов'язковий
Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.
Повертає
JsonValue
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • not_found
  • idempotency-conflict

commerce-proposal request

Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.

commerce-proposal request
{ operation: "commerce-proposal"; proposalId: string }

Параметри

proposalIdstringОбов'язковий
Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.
Повертає
JsonValue
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

NativeOperationBridgeResult

Повертає декодований JSON із нативного мосту операцій. Обробляйте перевірку, транспорт, завершення сесії та відмову сервера як окремі результати.

NativeOperationBridgeResult
{ valueJson: string }
Повертає
JsonValue
Помилки
  • http

HostActionResult

Дозволені callback-функції застосунку для керованих дій віджета. Вони не автентифікують мережеві запити.

HostActionResult
{ ok: boolean; status: "acknowledged" | "completed" | "failed"; data?: JsonValue; code?: string; retryable?: boolean }

ClientToolRequest

Запитує дозволений client tool, підтверджує його результат або читає його стан. Payload інструмента плоский, обмежений і відхиляє чутливі назви полів.

ClientToolRequest
{ toolName: string; basisMessageId: string; input: ClientToolPayload }

ClientToolResult

Запитує дозволений client tool, підтверджує його результат або читає його стан. Payload інструмента плоский, обмежений і відхиляє чутливі назви полів.

ClientToolResult
{ callId: string; output: ClientToolPayload }

ProcedureActionInput

Виконує дію серверної процедури з ключем ідемпотентності та очікуваною версією workflow.

ProcedureActionInput
{ action: "start" | "answer" | "availability" | "select" | "calendar_date" | "back" | "confirm" | "decline"; value: string; idempotencyKey: string; procedureId?: string; locale?: "en" | "uk" | "de" | "es"; runId?: string; expectedUpdatedAt?: string; stepId?: string; parameterId?: string; timeZone?: string; nativeCommerceUi?: true }

AttachmentDescriptor

Створює intent для завантаження та передає вибрані локальні файли з урахуванням лімітів розміру, типу, URI і політик SDK.

AttachmentDescriptor
{ clientId: string; fileName: string; mimeType: string; sizeBytes: number; kind: "image" | "video" | "pdf" | "text" }

AttachmentUploadIntent

Створює intent для завантаження та передає вибрані локальні файли з урахуванням лімітів розміру, типу, URI і політик SDK.

AttachmentUploadIntent
{ clientId: string; attachmentId: string; uploadUrl: string; uploadToken: string; expiresAt: string }

CommerceOrderQuery

Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.

CommerceOrderQuery
{ cursor?: string; store?: string }

CommerceProposalInput

Читає дані замовлення та створює, підтверджує або читає обмежену пропозицію скасування Shopify-замовлення.

CommerceProposalInput
{ actionId: "shopify_order_cancel"; selection: { storeReference: string; orderReference: string; lineItems?: { lineItemReference: string; quantity: number }[] } }

flushOutbox

Повторює очікувані мутації з оригінальним тілом і ключем ідемпотентності.

flushOutbox
flushOutbox() async throws -> [DobroDeskAcceptedMessage]
Помилки
  • network
  • outbox-corrupt
  • session-expired

resetSession

Очищає сесію, snapshot і очікувані мутації в межах облікового запису.

resetSession
resetSession() async throws
Помилки
  • request-in-progress
  • outbox-corrupt

Показ віджета

WidgetExperience

Спільний об'єкт appearance-v2: кольори, типографіка, компонування й тіні в задокументованих межах.

WidgetExperience
schemaVersion, locale, appearance, platformOverrides, presentation, reducedMotion, copy
Помилки
  • field-invalid
  • unsupported

reducedMotion

За замовчуванням використовуйте системне налаштування. Нативні хости також враховують доступність, економію енергії та термальний стан.

reducedMotion
system | always

DobroDeskWidgetLocaleCatalog.copy(for:)

Завантажує вбудовану нативну мапу основних текстів віджета. Каталог перевіряє спільний контракт і наразі містить en, uk, de та es; похідні підписи процедур, ролей і валідації є окремими.

DobroDeskWidgetLocaleCatalog.copy(for:)
DobroDeskWidgetLocaleCatalog.copy(for locale: String) throws -> [String: String]
Помилки
  • field-invalid

DobroDeskWidgetCopy.init(values:)

Створює або читає перевірені тексти спільного віджета. Невідомі, відсутні, порожні або надто довгі значення відхиляються до показу.

DobroDeskWidgetCopy.init(values:)
DobroDeskWidgetCopy(values: [String: String]) throws -> DobroDeskWidgetCopy
Помилки
  • field-invalid

DobroDeskWidgetCopy.requiredKeys

Створює або читає перевірені тексти спільного віджета. Невідомі, відсутні, порожні або надто довгі значення відхиляються до показу.

DobroDeskWidgetCopy.requiredKeys
Set<String>

DobroDeskWidgetExperience.decodeAndResolve

Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.

DobroDeskWidgetExperience.decodeAndResolve
decodeAndResolve(_ data: Data, platform: DobroDeskWidgetPlatform, osReducedMotion: Bool, localeCopy: [String: String], decoder: JSONDecoder = JSONDecoder()) throws -> DobroDeskWidgetExperience

Параметри

dataDataОбов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
platformDobroDeskWidgetPlatformОбов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
osReducedMotionBoolОбов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
localeCopy[String: String]Обов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
decoderJSONDecoderЗначення за замовчуванням: JSONDecoder()
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
Повертає
DobroDeskWidgetExperience
Помилки
  • field-invalid
  • unsupported

DobroDeskWidgetExperience.resolve

Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.

DobroDeskWidgetExperience.resolve
resolve(_ input: DobroDeskWidgetExperienceInput, platform: DobroDeskWidgetPlatform, osReducedMotion: Bool, localeCopy: [String: String]) throws -> DobroDeskWidgetExperience

Параметри

inputDobroDeskWidgetExperienceInputОбов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
platformDobroDeskWidgetPlatformОбов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
osReducedMotionBoolОбов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
localeCopy[String: String]Обов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
Повертає
DobroDeskWidgetExperience
Помилки
  • field-invalid
  • unsupported

DobroDeskWidgetBridgePresenter.present

Показує нативний віджет зі спільним контрактом вигляду.

DobroDeskWidgetBridgePresenter.present
present(client: DobroDeskClient, options: NSDictionary, from: UIViewController) async throws
Помилки
  • request-in-progress
  • invalid-config
  • field-invalid
  • unsupported

DobroDeskWidgetViewController

Показує нативний віджет зі спільним контрактом вигляду.

DobroDeskWidgetViewController
init(client: DobroDeskClient, experience: DobroDeskWidgetExperience, ...)

close

Закриває поточний нативний показ або звільняє змонтований host.

close
DobroDeskWidgetBridgePresenter.close(animated: Bool = true)

DobroDeskWidgetBridgePresenter.embed

Показує нативний віджет зі спільним контрактом вигляду.

DobroDeskWidgetBridgePresenter.embed
embed(client: DobroDeskClient, options: NSDictionary, in container: UIView, parent: UIViewController) async throws
Помилки
  • request-in-progress
  • invalid-config
  • field-invalid
  • unsupported

setEmbeddedVisible

Налаштування нативної навігації та показу web launcher або панелі.

setEmbeddedVisible
setEmbeddedVisible(_ visible: Bool)

Додаткові можливості

voiceFactory

Встановлює або прибирає опційну фабрику нативного голосу для показу віджета.

voiceFactory
DobroDeskWidgetBridgePresenter.installVoiceFactory(_ factory: DobroDeskWidgetVoiceFactory); uninstallVoiceFactory()
Помилки
  • unsupported
  • invalid-config

voice lifecycle

Керує опційною голосовою можливістю, встановленою хостом: запуском, зупиненням, вимкненням мікрофона, barge-in і звільненням ресурсів. Віджет у браузері може показувати voice UI, але цей API керує лише голосовим мостом хоста.

voice lifecycle
DobroDeskVoiceClient.start(), stop(), setMuted(), bargeIn(), pauseForBackground(), resumeAfterForeground(), handleAudioInterruption(ended:shouldResume:), handleRouteChange()
Помилки
  • invalid-configuration
  • permission-denied
  • audio-unavailable
  • session-expired
  • realtime-unavailable
  • invalid-response
  • protocol-violation
  • stale-frame
  • queue-overloaded
  • cancelled
  • unsupported

push

Описує окремий опційний нативний push-артефакт і реєстрацію хоста. Framework-обгортки не експортують JavaScript або Dart push-клієнт; використовуйте нативний модуль iOS або Android.

push
iOS: DobroDeskPush product

Помилки

SdkErrorCode

Обробляйте стабільні машинні коди та не показуйте діагностику сервера в UI.

SdkErrorCode
invalid-config | network | http | integration-disabled | integration-paused | origin-not-allowed | turnstile-required | turnstile-failed | request-in-progress | idempotency-conflict | conversation-limit-reached | rate-limited | payload-too-large | field-invalid | conversation-stale | session-expired | realtime-unavailable | message-rejected | outbox-corrupt | unsupported