Ir al contenido principal
DocumentaciónAndroid
Versión 0.2.0Android API 26 o posterior

Android SDK: Referencia de la API

Android: APIs nativas para el transporte firmado, el estado de la UI del widget, los reintentos y la entrega offline duradera.

En esta página

Configuración

apiOrigin

Obligatorio

El origen de API usa HTTPS en producción. Los clientes nativos permiten HTTP en localhost para desarrollo.

apiOrigin
URL | String

integrationId

Obligatorio

Identificador público de integración copiado del canal de widget de DobroDesk.

integrationId
String

accountScope

Obligatorio

Clave estable del cliente o la cuenta que aísla el estado persistente de la sesión y la bandeja de salida.

accountScope
String

locale

Valor predeterminado: en

Locale del widget para el contenido. La web usa auto de forma predeterminada; los bundles nativos admiten actualmente en, uk, de y es.

locale
String = "en"

credentialProvider

Obligatorio

Una función del backend que devuelve un JWT de cliente firmado y de corta duración. El secreto nunca va en la aplicación.

credentialProvider
() async throws -> String | suspend () -> String

turnstileToken

Token de Turnstile opcional para las integraciones que lo requieren.

turnstileToken
String?

pollInterval

Valor predeterminado: 1s

Intervalo limitado que se usa al consultar una respuesta asíncrona del asistente.

pollInterval
TimeInterval | Duration = 1s

Ciclo de vida y conversación

DobroDeskClient

Crea el cliente y valida la configuración.

DobroDeskClient
DobroDeskClient(configuration: DobroDeskConfiguration, transport: DobroDeskTransport = ..., outbox: DobroDeskDurableStateStore, attachmentStore: DobroDeskAttachmentStore? = ...)
Errores
  • invalid-config
  • outbox-corrupt

subscribe

Se suscribe a eventos canónicos del SDK. Para liberar el listener, usa la suscripción, el callback de cancelación o la suscripción de stream que devuelve la plataforma.

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

state getters

Devuelve el estado actual del widget sin suscribirse.

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

loadWidgetAppearance

Carga el bundle validado de apariencia o contenido para el widget nativo.

loadWidgetAppearance
loadWidgetAppearance(): JsonObject suspend
Errores
  • network
  • http
  • session-expired

loadWidgetContent

Carga el bundle validado de apariencia o contenido para el widget nativo.

loadWidgetContent
loadWidgetContent(locale: String = configuration.locale): WidgetContentSnapshot suspend
Errores
  • network
  • http
  • field-invalid

startSession

Inicia una conversación con un primer mensaje idempotente.

startSession
startSession(input: SessionStartInput): DobroDeskSession suspend
Errores
  • network
  • field-invalid
  • idempotency-conflict
  • outbox-corrupt

resumeSession

Restaura el estado de la cuenta o una sesión del servidor.

resumeSession
resumeSession(): DobroDeskSession? suspend
Errores
  • network
  • session-expired
  • outbox-corrupt

restoreSession

Restaura una prueba de sesión aceptada y carga su snapshot.

restoreSession
restoreSession(restored: DobroDeskSession): ConversationSnapshot suspend
Errores
  • session-expired
  • network

refresh

Carga el estado actual de la conversación.

refresh
refresh(): ConversationSnapshot suspend
Errores
  • network
  • session-expired
  • message-rejected

waitForAssistant

Consulta con tiempos limitados hasta que termina el trabajo del asistente o expira la espera.

waitForAssistant
waitForAssistant(timeout: Duration = Duration.ofSeconds(30), afterMessageCount: Int? = null): ConversationSnapshot suspend
Errores
  • invalid-config
  • realtime-unavailable
  • network
  • session-expired

sendMessage

Envía un mensaje y devuelve su estado de entrega.

sendMessage
sendMessage(input: MessageInput): AcceptedMessage suspend
Errores
  • network
  • idempotency-conflict
  • conversation-stale
  • rate-limited
  • message-rejected

attachments

Envía un mensaje y devuelve su estado de entrega.

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

performOperation / performNativeOperation

Expone operaciones tipadas de formularios, herramientas del cliente, adjuntos y comercio mediante el motor nativo.

performOperation / performNativeOperation
performNativeOperation(requestJson: String, resolveFile: suspend (String, String) -> DobroDeskAttachmentSource): String
Errores
  • field-invalid
  • unsupported
  • session-expired
  • http

NativeOperation

Devuelve JSON decodificado desde el puente nativo de operaciones. Trata la validación, el transporte, la expiración y el rechazo del servidor como resultados explícitos.

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"
Errores
  • field-invalid
  • unsupported
  • session-expired
  • http

submit-form request

Envía valores acotados para un formulario de conversación proporcionado por el servidor. El identificador y los valores se validan antes de la solicitud nativa firmada.

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

Parámetros

requestIdstringObligatorio
Envía valores acotados para un formulario de conversación proporcionado por el servidor. El identificador y los valores se validan antes de la solicitud nativa firmada.
valuesJsonObjectObligatorio
Envía valores acotados para un formulario de conversación proporcionado por el servidor. El identificador y los valores se validan antes de la solicitud nativa firmada.
Devuelve
JsonValue
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected

request-client-tool request

Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.

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

Parámetros

toolNamestringObligatorio
Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
basisMessageIdstringObligatorio
Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
inputClientToolPayloadObligatorio
Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
Devuelve
JsonValue
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

complete-client-tool request

Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.

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

Parámetros

callIdstringObligatorio
Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
outputClientToolPayloadObligatorio
Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
Devuelve
JsonValue
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

client-tool-status request

Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.

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

Parámetros

callIdstringObligatorio
Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.
Devuelve
JsonValue
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

procedure-action request

Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.

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

Parámetros

actionstart | answer | availability | select | calendar_date | back | confirm | declineObligatorio
Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.
valuestringObligatorio
Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.
idempotencyKeystring (16-128 characters)Obligatorio
Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.
procedureId / runId / expectedUpdatedAtstring?
Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.
locale"en" | "uk" | "de" | "es"?
Locale del widget para el contenido. La web usa auto de forma predeterminada; los bundles nativos admiten actualmente en, uk, de y es.
stepId / parameterId / timeZonestring?
Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.
nativeCommerceUitrue?
Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.
Devuelve
JsonValue
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected
  • idempotency-conflict

attachment-intents request

Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.

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

Parámetros

messageIdstringObligatorio
Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
attachmentsAttachmentDescriptor[] (1-5; each up to 10 MiB)Obligatorio
Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
Devuelve
JsonValue
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

upload-attachment request

Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.

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

Parámetros

intentAttachmentUploadIntentObligatorio
Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
fileUrifile:// or content:// URIObligatorio
Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
mimeTypestringObligatorio
Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.
Devuelve
JsonValue
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

list-orders request

Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.

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

Parámetros

query.cursorstring?
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
query.storestring?
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
Devuelve
JsonValue
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited

order-detail request

Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.

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

Parámetros

orderRefstringObligatorio
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
Devuelve
JsonValue
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

create-commerce-proposal request

Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.

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

Parámetros

input.actionId"shopify_order_cancel"Obligatorio
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
input.selection.storeReferencestringObligatorio
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
input.selection.orderReferencestringObligatorio
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
input.selection.lineItems{ lineItemReference: string; quantity: number }[]?
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
idempotencyKeystring (16-128 characters)Obligatorio
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
Devuelve
JsonValue
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • idempotency-conflict

confirm-commerce-proposal request

Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.

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

Parámetros

proposalIdstringObligatorio
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
idempotencyKeystring (16-128 characters)Obligatorio
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
Devuelve
JsonValue
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • not_found
  • idempotency-conflict

commerce-proposal request

Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.

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

Parámetros

proposalIdstringObligatorio
Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.
Devuelve
JsonValue
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

NativeOperationBridgeResult

Devuelve JSON decodificado desde el puente nativo de operaciones. Trata la validación, el transporte, la expiración y el rechazo del servidor como resultados explícitos.

NativeOperationBridgeResult
{ valueJson: string }
Devuelve
JsonValue
Errores
  • http

HostActionResult

Callbacks permitidos de la aplicación para acciones guiadas del widget. No autentican solicitudes de red.

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

ClientToolRequest

Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.

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

ClientToolResult

Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.

ClientToolResult
{ callId: string; output: ClientToolPayload }

ProcedureActionInput

Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.

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

Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.

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

AttachmentUploadIntent

Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.

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

CommerceOrderQuery

Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.

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

CommerceProposalInput

Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.

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

requestAttachmentIntents

Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.

requestAttachmentIntents
requestAttachmentIntents(messageId: String, attachments: List<DobroDeskAttachment>) suspend -> List<DobroDeskAttachmentIntent>
Errores
  • attachment_policy_failed
  • session-expired
  • network
  • http

uploadAttachment

Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.

uploadAttachment
uploadAttachment(intent: DobroDeskAttachmentIntent, source: DobroDeskAttachmentSource) suspend -> DobroDeskAttachmentUpload
Errores
  • attachment_policy_failed
  • session-expired
  • network
  • http

downloadAttachment

Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.

downloadAttachment
downloadAttachment(downloadUrl: String, destination: OutputStream) suspend -> BinaryDownloadResponse
Errores
  • attachment_policy_failed
  • session-expired
  • network
  • http

canDownloadAttachment

Crea intenciones de carga y sube archivos locales seleccionados dentro de los límites de tamaño, tipo, URI y política del SDK.

canDownloadAttachment
canDownloadAttachment(downloadUrl: String): Boolean

requestClientTool

Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.

requestClientTool
requestClientTool(requestInput: DobroDeskClientToolRequest) suspend -> DobroDeskClientToolResponse
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

completeClientTool

Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.

completeClientTool
completeClientTool(result: DobroDeskClientToolResult) suspend -> DobroDeskClientToolResponse
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

clientToolStatus

Solicita una herramienta de cliente permitida, confirma su resultado o consulta su estado. Los payloads son planos, acotados y rechazan nombres de campos sensibles.

clientToolStatus
clientToolStatus(callId: String) suspend -> DobroDeskClientToolResponse
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

submitConversationForm

Envía valores acotados para un formulario de conversación proporcionado por el servidor. El identificador y los valores se validan antes de la solicitud nativa firmada.

submitConversationForm
submitConversationForm(requestId: String, values: Map<String, JsonElement>) suspend -> Unit
Errores
  • field-invalid
  • network
  • http
  • session-expired

performProcedureAction

Avanza una acción de procedimiento proporcionada por el servidor con una clave de idempotencia y la revisión de flujo esperada.

performProcedureAction
performProcedureAction(action: DobroDeskProcedureActionRequest) suspend -> Unit
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected
  • idempotency-conflict

loadCommerceOrders

Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.

loadCommerceOrders
loadCommerceOrders(storeReference: String? = null, cursor: String? = null) suspend -> JsonElement?
Errores
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited

loadCommerceOrderDetail

Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.

loadCommerceOrderDetail
loadCommerceOrderDetail(orderReference: String) suspend -> JsonElement?
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

createCommerceProposal

Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.

createCommerceProposal
createCommerceProposal(input: JsonObject, idempotencyKey: String) suspend -> JsonElement?
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • idempotency-conflict

confirmCommerceProposal

Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.

confirmCommerceProposal
confirmCommerceProposal(proposalId: String, idempotencyKey: String) suspend -> JsonElement?
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • not_found
  • idempotency-conflict

commerceProposal

Lee datos de pedidos y crea, confirma o consulta una propuesta acotada para cancelar un pedido de Shopify.

commerceProposal
commerceProposal(proposalId: String) suspend -> JsonElement?
Errores
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

flushOutbox

Reintenta mutaciones pendientes con el cuerpo y la clave originales.

flushOutbox
flushOutbox(): List<AcceptedMessage> suspend
Errores
  • network
  • outbox-corrupt
  • session-expired

resetSession

Borra la sesión, el snapshot y las mutaciones pendientes asociadas a la cuenta.

resetSession
resetSession() suspend
Errores
  • request-in-progress
  • outbox-corrupt

Presentación del widget

WidgetExperience

Objeto compartido appearance-v2: colores, tipografía, diseño y sombra dentro de los límites documentados.

WidgetExperience
schemaVersion, locale, appearance, platformOverrides, presentation, reducedMotion, copy
Errores
  • field-invalid
  • unsupported

reducedMotion

De forma predeterminada sigue el sistema y las políticas nativas de accesibilidad, batería y temperatura.

reducedMotion
system | always

WidgetLocaleCopies.forLocale

Carga un mapa de textos principales del widget incluido en el SDK nativo. El catálogo valida ese contrato compartido e incluye actualmente en, uk, de y es; las etiquetas derivadas de procedimientos, roles y validación son independientes.

WidgetLocaleCopies.forLocale
WidgetLocaleCopies.forLocale(locale: String): Map<String, String>
Errores
  • field-invalid

WidgetCopy(values)

Crea o lee los textos compartidos validados del widget. Los valores desconocidos, ausentes, vacíos o demasiado largos se rechazan antes de renderizar.

WidgetCopy(values)
WidgetCopy(values: Map<String, String>): WidgetCopy
Errores
  • field-invalid

WidgetCopy.requiredKeys

Crea o lee los textos compartidos validados del widget. Los valores desconocidos, ausentes, vacíos o demasiado largos se rechazan antes de renderizar.

WidgetCopy.requiredKeys
Set<String>

WidgetCopy.text

Crea o lee los textos compartidos validados del widget. Los valores desconocidos, ausentes, vacíos o demasiado largos se rechazan antes de renderizar.

WidgetCopy.text
WidgetCopy.text(key: String): String
Errores
  • field-invalid

WidgetExperience.decodeAndResolve

Decodifica y resuelve el contrato de diseño compartido con overrides de plataforma, de textos y el estado del sistema del host para reducir el movimiento.

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

Parámetros

dataStringObligatorio
Decodifica y resuelve el contrato de diseño compartido con overrides de plataforma, de textos y el estado del sistema del host para reducir el movimiento.
platformStringObligatorio
Decodifica y resuelve el contrato de diseño compartido con overrides de plataforma, de textos y el estado del sistema del host para reducir el movimiento.
osReducedMotionBooleanObligatorio
Decodifica y resuelve el contrato de diseño compartido con overrides de plataforma, de textos y el estado del sistema del host para reducir el movimiento.
localeCopyMap<String, String>Obligatorio
Decodifica y resuelve el contrato de diseño compartido con overrides de plataforma, de textos y el estado del sistema del host para reducir el movimiento.
Devuelve
WidgetExperience
Errores
  • field-invalid
  • unsupported

WidgetExperience.resolve

Decodifica y resuelve el contrato de diseño compartido con overrides de plataforma, de textos y el estado del sistema del host para reducir el movimiento.

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

Parámetros

inputWidgetExperienceInputObligatorio
Decodifica y resuelve el contrato de diseño compartido con overrides de plataforma, de textos y el estado del sistema del host para reducir el movimiento.
platformStringObligatorio
Decodifica y resuelve el contrato de diseño compartido con overrides de plataforma, de textos y el estado del sistema del host para reducir el movimiento.
osReducedMotionBooleanObligatorio
Decodifica y resuelve el contrato de diseño compartido con overrides de plataforma, de textos y el estado del sistema del host para reducir el movimiento.
localeCopyMap<String, String>Obligatorio
Decodifica y resuelve el contrato de diseño compartido con overrides de plataforma, de textos y el estado del sistema del host para reducir el movimiento.
Devuelve
WidgetExperience
Errores
  • field-invalid
  • unsupported

DobroDeskWidgetBridgePresenter.present

Presenta el widget nativo con el contrato compartido.

DobroDeskWidgetBridgePresenter.present
present(activity: Activity, client: DobroDeskClient, options: JsonObject = {}): DobroDeskWidgetBridgePresenter
Errores
  • request-in-progress
  • invalid-config
  • field-invalid
  • unsupported

close / detach

Cierra la presentación nativa actual o libera un host montado.

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

DobroDeskWidgetBridgePresenter.createEmbedded

Presenta el widget nativo con el contrato compartido.

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

DobroDeskWidgetEmbeddedHandle

Opciones de navegación nativa y de presentación del launcher o panel web.

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

Capacidades opcionales

voiceFactory

Instala o elimina la fábrica de voz nativa opcional usada por las presentaciones del widget.

voiceFactory
DobroDeskWidgetBridgePresenter.installVoiceFactory(factory); uninstallVoiceFactory()
Errores
  • unsupported
  • invalid-config

voice lifecycle

Controla una capacidad de voz opcional instalada por el host: inicio, detención, silencio, barge-in y liberación. El widget web puede mostrar una interfaz de voz, pero esta API del SDK solo controla un puente de voz proporcionado por el host.

voice lifecycle
start(), stop(), setMuted(), bargeIn(), dispose()
Errores
  • invalid-configuration
  • permission-denied
  • audio-unavailable
  • session-expired
  • realtime-unavailable
  • invalid-response
  • protocol-violation
  • stale-frame
  • queue-overloaded
  • cancelled
  • unsupported

push

Describe el artefacto push nativo opcional y el registro del host. Los wrappers de framework no exportan un cliente push de JavaScript o Dart; usa el módulo nativo de iOS o Android.

push
iOS: DobroDeskPush product; Android: com.dobrodesk:dobrodesk-push:<version>

Errores

SdkErrorCode

Gestiona códigos estables legibles por máquinas y mantén los diagnósticos del servidor fuera de la interfaz del cliente.

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