Перейти до основного вмісту
ДокументаціяCapacitor
Версія 0.2.0Capacitor від 6 до версій нижче 9

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

Capacitor: Типізований міст до спільних нативних рушіїв iOS та Android для вибраного мобільного фреймворку.

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

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

DobroDeskSdkConfig

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

Конфігурація фреймворку передає особу застосунку й область облікового запису та отримує свіжий короткоживучий authorization token від credential provider хоста. Форми токена й результату відповідають сигнатурі платформи.

DobroDeskSdkConfig
{ apiOrigin: string; integrationId: string; accountScope: string; locale?: SdkLocale; turnstileToken?: string; pollIntervalMs?: number; fetchImpl?: typeof fetch; credentialProvider: () => Promise<{ authorizationToken: string }>; hostActions?: HostActionHandlers; context?: JsonObject }
Помилки
  • invalid-config

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

DobroDeskCapacitorClient

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

DobroDeskCapacitorClient
new DobroDeskCapacitorClient(config: DobroDeskSdkConfig)

startSession

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

startSession
startSession(message: string, options?: Omit<SessionStartInput, 'message'>): Promise<Record<string, unknown>>
Помилки
  • network
  • field-invalid
  • idempotency-conflict
  • outbox-corrupt

resumeSession

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

resumeSession
resumeSession(): Promise<Record<string, unknown> | null>
Помилки
  • network
  • session-expired
  • outbox-corrupt

refresh

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

refresh
refresh(): Promise<Record<string, unknown>>
Помилки
  • network
  • session-expired
  • message-rejected

waitForAssistant

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

waitForAssistant
waitForAssistant(options?: Omit<WaitForAssistantOptions, 'pollIntervalMs'>): Promise<Record<string, unknown>>
Помилки
  • realtime-unavailable
  • network
  • session-expired

sendMessage

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

sendMessage
sendMessage(text: string, idempotencyKey?: string): Promise<Record<string, unknown>>
Помилки
  • network
  • idempotency-conflict
  • conversation-stale
  • rate-limited
  • message-rejected

flushOutbox

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

flushOutbox
flushOutbox(): Promise<readonly Record<string, unknown>[]>
Помилки
  • network
  • outbox-corrupt
  • session-expired

resetSession

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

resetSession
resetSession(): Promise<void>
Помилки
  • request-in-progress
  • outbox-corrupt

setAuthorizationToken

Передає найновіший короткоживучий токен нативному мосту.

setAuthorizationToken
setAuthorizationToken(token: string): Promise<void>

logout

Завершує сесію клієнта й очищає додаткові можливості.

logout
logout(): Promise<void>
Помилки
  • outbox-corrupt

presentWidget

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

presentWidget
presentWidget(options?: NativeWidgetOptions): Promise<void>

Параметри

localeSdkLocale?
Локаль віджета для контенту. Web за замовчуванням використовує auto; нативні bundle зараз підтримують en, uk, de та es.
titleString?
Обмежені перевизначення ключів спільного тексту віджета.
subtitleString?
Обмежені перевизначення ключів спільного тексту віджета.
appearanceobject?
Спільний об'єкт appearance-v2: кольори, типографіка, компонування й тіні в задокументованих межах.
platformobject?
Платформні налаштування безпечної області, клавіатури й навігації в межах спільного дизайн-контракту.
reduceMotionboolean?
За замовчуванням використовуйте системне налаштування. Нативні хости також враховують доступність, економію енергії та термальний стан.
viewhome | messages | help
Налаштування нативної навігації та показу web launcher або панелі.
articleIdstring?
Обмежений JSON-контекст для явно зареєстрованих дій хоста.
hostActionIdsstring[]?
Дозволені callback-функції застосунку для керованих дій віджета. Вони не автентифікують мережеві запити.
contextJsonObject?
Обмежений JSON-контекст для явно зареєстрованих дій хоста.
Помилки
  • invalid-config
  • request-in-progress
  • field-invalid

closeWidget

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

closeWidget
closeWidget(): Promise<void>

subscribe

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

subscribe
subscribe(listener: (event: SdkEvent) => void): Promise<{ remove(): Promise<void> }>

operations

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

operations
operations: DobroDeskRichOperations

submitForm

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

submitForm
operations.submitForm(requestId: string, values: JsonObject): Promise<JsonValue>

Параметри

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

requestClientTool

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

requestClientTool
operations.requestClientTool(input: ClientToolRequest): Promise<JsonValue>

Параметри

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

completeClientTool

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

completeClientTool
operations.completeClientTool(input: ClientToolResult): Promise<JsonValue>

Параметри

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

clientToolStatus

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

clientToolStatus
operations.clientToolStatus(callId: string): Promise<JsonValue>

Параметри

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

procedureAction

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

procedureAction
operations.procedureAction(input: ProcedureActionInput): Promise<JsonValue>

Параметри

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

attachmentIntents

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

attachmentIntents
operations.attachmentIntents(messageId: string, attachments: readonly AttachmentDescriptor[]): Promise<JsonValue>

Параметри

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

uploadAttachment

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

uploadAttachment
operations.uploadAttachment(intent: AttachmentUploadIntent, fileUri: string, mimeType: string): Promise<JsonValue>

Параметри

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

listOrders

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

listOrders
operations.listOrders(query?: CommerceOrderQuery): Promise<JsonValue>

Параметри

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

orderDetail

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

orderDetail
operations.orderDetail(orderRef: string): Promise<JsonValue>

Параметри

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

createCommerceProposal

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

createCommerceProposal
operations.createCommerceProposal(input: CommerceProposalInput, idempotencyKey: string): Promise<JsonValue>

Параметри

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

confirmCommerceProposal

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

confirmCommerceProposal
operations.confirmCommerceProposal(proposalId: string, idempotencyKey: string): Promise<JsonValue>

Параметри

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

commerceProposal

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

commerceProposal
operations.commerceProposal(proposalId: string): Promise<JsonValue>

Параметри

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

ClientToolRequest

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

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

ClientToolResult

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

ClientToolResult
{ callId: string; output: ClientToolPayload }

AttachmentDescriptor

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

AttachmentDescriptor
{ clientId: string; fileName: string; mimeType: string; sizeBytes: number; kind: AttachmentKind }

AttachmentUploadIntent

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

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

CommerceProposalInput

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

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

DobroDeskLoadingState

Спільний стан завантаження має одне зі значень idle, starting-session, loading-messages, sending-message, waiting-for-assistant, executing-action, reconnecting або flushing-outbox.

DobroDeskLoadingState
"idle" | "starting-session" | "loading-messages" | "sending-message" | "waiting-for-assistant" | "executing-action" | "reconnecting" | "flushing-outbox"

SdkEvent

Події native і wrapper використовують спільний envelope loading, session, snapshot, accepted-message, error і session-cleared.

SdkEvent
loading(state: DobroDeskLoadingState) | session-cleared | session-started | snapshot | message-accepted | error | host-action-requested | host-action-cancelled

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

WidgetExperience

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

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

mountWidget

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

mountWidget
mountWidget(container: HTMLElement, options?: NativeWidgetOptions, callbacks?: DobroDeskEmbeddedCallbacks): Promise<DobroDeskEmbeddedWidget>
Помилки
  • invalid-config
  • request-in-progress
  • field-invalid

DobroDeskEmbeddedWidget

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

DobroDeskEmbeddedWidget
setVisible(visible: boolean): void; dispose(): Promise<void>

NativeOperation (wrapper bridge)

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

NativeOperation (wrapper bridge)
operation: "complete-host-action" | "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"

complete-host-action (local bridge)

Framework-обгортки передають завершення host action через локальний нативний міст. Воно не надсилається як HTTP-операція через прямий нативний клієнт.

complete-host-action (local bridge)
{ operation: "complete-host-action"; requestId: string; actionId: string; result: HostActionResult }

Параметри

requestIdstringОбов'язковий
Дозволені callback-функції застосунку для керованих дій віджета. Вони не автентифікують мережеві запити.
actionIdstringОбов'язковий
Дозволені callback-функції застосунку для керованих дій віджета. Вони не автентифікують мережеві запити.
resultHostActionResultОбов'язковий
Дозволені callback-функції застосунку для керованих дій віджета. Вони не автентифікують мережеві запити.
Повертає
JsonValue
Помилки
  • field-invalid
  • session-expired
  • unsupported

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

attachVoice

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

attachVoice
attachVoice(port: DobroDeskVoicePort): Promise<DobroDeskVoiceFacade>
Помилки
  • unsupported
  • invalid-config

voice

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

voice
voice: DobroDeskVoiceFacade | undefined

createCapacitorVoicePort

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

createCapacitorVoicePort
createCapacitorVoicePort(bridge): DobroDeskVoicePort

voice lifecycle

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

voice lifecycle
start(): Promise<void>; stop(): Promise<void>; setMuted(muted: boolean): Promise<void>; bargeIn(): Promise<void>; dispose(): Promise<void>
Помилки
  • invalid-configuration
  • permission-denied
  • audio-unavailable
  • session-expired
  • realtime-unavailable
  • invalid-response
  • protocol-violation
  • stale-frame
  • queue-overloaded
  • cancelled
  • unsupported

push module (native only)

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

push module (native only)
No JS/Dart wrapper export; use the iOS DobroDeskPush product or Android com.dobrodesk:dobrodesk-push:<version>.

Помилки

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