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

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

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

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

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

apiOrigin

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

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

apiOrigin
URL | String

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 | suspend () -> String

turnstileToken

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

turnstileToken
String?

pollInterval

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

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

pollInterval
TimeInterval | Duration = 1s

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

DobroDeskClient

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

DobroDeskClient
DobroDeskClient(configuration: DobroDeskConfiguration, transport: DobroDeskTransport = ..., outbox: DobroDeskDurableStateStore, attachmentStore: DobroDeskAttachmentStore? = ...)
Помилки
  • invalid-config
  • outbox-corrupt

subscribe

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

subscribe
subscribe(listener: (SdkEvent) -> Unit): () -> Unit

state getters

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

state getters
currentSession(), currentConfiguration(), currentWidgetVoiceSettings(), currentWidgetConfiguration(), currentWidgetNavigation(), currentWidgetContent(), currentSnapshot(), currentLoadingState(), shouldWaitForAssistant()

loadWidgetAppearance

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

loadWidgetAppearance
loadWidgetAppearance(): JsonObject suspend
Помилки
  • network
  • http
  • session-expired

loadWidgetContent

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

loadWidgetContent
loadWidgetContent(locale: String = configuration.locale): WidgetContentSnapshot suspend
Помилки
  • network
  • http
  • field-invalid

startSession

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

startSession
startSession(input: SessionStartInput): DobroDeskSession suspend
Помилки
  • network
  • field-invalid
  • idempotency-conflict
  • outbox-corrupt

resumeSession

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

resumeSession
resumeSession(): DobroDeskSession? suspend
Помилки
  • network
  • session-expired
  • outbox-corrupt

restoreSession

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

restoreSession
restoreSession(restored: DobroDeskSession): ConversationSnapshot suspend
Помилки
  • session-expired
  • network

refresh

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

refresh
refresh(): ConversationSnapshot suspend
Помилки
  • network
  • session-expired
  • message-rejected

waitForAssistant

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

waitForAssistant
waitForAssistant(timeout: Duration = Duration.ofSeconds(30), afterMessageCount: Int? = null): ConversationSnapshot suspend
Помилки
  • invalid-config
  • realtime-unavailable
  • network
  • session-expired

sendMessage

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

sendMessage
sendMessage(input: MessageInput): AcceptedMessage suspend
Помилки
  • network
  • idempotency-conflict
  • conversation-stale
  • rate-limited
  • message-rejected

attachments

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

attachments
sendMessageWithAttachments(input: MessageInput, attachments: List<DobroDeskAttachment>): AcceptedMessage suspend; uploadMessageAttachments(messageId: String, attachments: List<DobroDeskAttachment>): List<DobroDeskAttachmentUpload> suspend; retryPendingAttachmentSend(): AcceptedMessage suspend
Помилки
  • attachment_policy_failed
  • attachment_rate_limited
  • session-expired
  • outbox-corrupt

performOperation / performNativeOperation

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

performOperation / performNativeOperation
performNativeOperation(requestJson: String, resolveFile: suspend (String, String) -> DobroDeskAttachmentSource): 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 }[] } }

requestAttachmentIntents

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

requestAttachmentIntents
requestAttachmentIntents(messageId: String, attachments: List<DobroDeskAttachment>) suspend -> List<DobroDeskAttachmentIntent>
Помилки
  • attachment_policy_failed
  • session-expired
  • network
  • http

uploadAttachment

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

uploadAttachment
uploadAttachment(intent: DobroDeskAttachmentIntent, source: DobroDeskAttachmentSource) suspend -> DobroDeskAttachmentUpload
Помилки
  • attachment_policy_failed
  • session-expired
  • network
  • http

downloadAttachment

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

downloadAttachment
downloadAttachment(downloadUrl: String, destination: OutputStream) suspend -> BinaryDownloadResponse
Помилки
  • attachment_policy_failed
  • session-expired
  • network
  • http

canDownloadAttachment

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

canDownloadAttachment
canDownloadAttachment(downloadUrl: String): Boolean

requestClientTool

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

requestClientTool
requestClientTool(requestInput: DobroDeskClientToolRequest) suspend -> DobroDeskClientToolResponse
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

completeClientTool

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

completeClientTool
completeClientTool(result: DobroDeskClientToolResult) suspend -> DobroDeskClientToolResponse
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

clientToolStatus

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

clientToolStatus
clientToolStatus(callId: String) suspend -> DobroDeskClientToolResponse
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

submitConversationForm

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

submitConversationForm
submitConversationForm(requestId: String, values: Map<String, JsonElement>) suspend -> Unit
Помилки
  • field-invalid
  • network
  • http
  • session-expired

performProcedureAction

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

performProcedureAction
performProcedureAction(action: DobroDeskProcedureActionRequest) suspend -> Unit
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected
  • idempotency-conflict

loadCommerceOrders

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

loadCommerceOrders
loadCommerceOrders(storeReference: String? = null, cursor: String? = null) suspend -> JsonElement?
Помилки
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited

loadCommerceOrderDetail

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

loadCommerceOrderDetail
loadCommerceOrderDetail(orderReference: String) suspend -> JsonElement?
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

createCommerceProposal

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

createCommerceProposal
createCommerceProposal(input: JsonObject, idempotencyKey: String) suspend -> JsonElement?
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • idempotency-conflict

confirmCommerceProposal

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

confirmCommerceProposal
confirmCommerceProposal(proposalId: String, idempotencyKey: String) suspend -> JsonElement?
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • not_found
  • idempotency-conflict

commerceProposal

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

commerceProposal
commerceProposal(proposalId: String) suspend -> JsonElement?
Помилки
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

flushOutbox

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

flushOutbox
flushOutbox(): List<AcceptedMessage> suspend
Помилки
  • network
  • outbox-corrupt
  • session-expired

resetSession

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

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

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

WidgetExperience

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

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

reducedMotion

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

reducedMotion
system | always

WidgetLocaleCopies.forLocale

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

WidgetLocaleCopies.forLocale
WidgetLocaleCopies.forLocale(locale: String): Map<String, String>
Помилки
  • field-invalid

WidgetCopy(values)

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

WidgetCopy(values)
WidgetCopy(values: Map<String, String>): WidgetCopy
Помилки
  • field-invalid

WidgetCopy.requiredKeys

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

WidgetCopy.requiredKeys
Set<String>

WidgetCopy.text

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

WidgetCopy.text
WidgetCopy.text(key: String): String
Помилки
  • field-invalid

WidgetExperience.decodeAndResolve

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

WidgetExperience.decodeAndResolve
WidgetExperience.decodeAndResolve(data: String, platform: String, osReducedMotion: Boolean, localeCopy: Map<String, String>): WidgetExperience

Параметри

dataStringОбов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
platformStringОбов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
osReducedMotionBooleanОбов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
localeCopyMap<String, String>Обов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
Повертає
WidgetExperience
Помилки
  • field-invalid
  • unsupported

WidgetExperience.resolve

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

WidgetExperience.resolve
WidgetExperience.resolve(input: WidgetExperienceInput, platform: String, osReducedMotion: Boolean, localeCopy: Map<String, String>): WidgetExperience

Параметри

inputWidgetExperienceInputОбов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
platformStringОбов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
osReducedMotionBooleanОбов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
localeCopyMap<String, String>Обов'язковий
Декодує та розв'язує спільний контракт дизайну з платформними override, override текстів і системним станом зменшення руху хоста.
Повертає
WidgetExperience
Помилки
  • field-invalid
  • unsupported

DobroDeskWidgetBridgePresenter.present

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

DobroDeskWidgetBridgePresenter.present
present(activity: Activity, client: DobroDeskClient, options: JsonObject = {}): DobroDeskWidgetBridgePresenter
Помилки
  • request-in-progress
  • invalid-config
  • field-invalid
  • unsupported

close / detach

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

close / detach
close(): Unit; detach(): Unit

DobroDeskWidgetBridgePresenter.createEmbedded

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

DobroDeskWidgetBridgePresenter.createEmbedded
suspend fun createEmbedded(activity: Activity, client: DobroDeskClient, options: JsonObject = {}): DobroDeskWidgetEmbeddedHandle
Помилки
  • request-in-progress
  • invalid-config
  • field-invalid
  • unsupported

DobroDeskWidgetEmbeddedHandle

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

DobroDeskWidgetEmbeddedHandle
view: DobroDeskWidgetView; isOpen: Boolean; setVisible(Boolean); close(): Unit

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

voiceFactory

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

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

voice lifecycle

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

voice lifecycle
start(), stop(), setMuted(), bargeIn(), dispose()
Помилки
  • 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; 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 | ATTACHMENT_POLICY_FAILED | ATTACHMENT_RATE_LIMITED | ACTION_IDENTITY_REQUIRED | COMMERCE_IDENTITY_REQUIRED | COMMERCE_UNAVAILABLE | SHOPIFY_RECONNECT_REQUIRED | SHOPIFY_RATE_LIMITED | NOT_FOUND