Pular para o conteúdo principal
DocumentaçãoAndroid
Versão 0.2.0Android API 26 ou posterior

Android SDK: Referência da API

Android: APIs nativas para o transporte assinado, o estado da UI do widget, as tentativas e a entrega offline durável.

Nesta página

Configuração

apiOrigin

Obrigatório

A origem da API usa HTTPS em produção. Os clientes nativos permitem HTTP em localhost para desenvolvimento.

apiOrigin
URL | String

integrationId

Obrigatório

Identificador público da integração copiado do canal do widget DobroDesk.

integrationId
String

accountScope

Obrigatório

Chave estável do cliente ou da conta que isola o estado persistente da sessão e da caixa de saída.

accountScope
String

locale

Valor padrão: en

Locale do widget para o conteúdo. A web usa auto por padrão; os bundles nativos aceitam atualmente en, uk, de e es.

locale
String = "en"

credentialProvider

Obrigatório

Uma função do backend que retorna um JWT de cliente assinado e de curta duração. O segredo fica fora do aplicativo.

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

turnstileToken

Token Turnstile opcional para integrações que precisam dele.

turnstileToken
String?

pollInterval

Valor padrão: 1s

Intervalo limitado usado ao consultar uma resposta assíncrona do assistente.

pollInterval
TimeInterval | Duration = 1s

Ciclo de vida e conversa

DobroDeskClient

Cria o cliente e valida a configuração.

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

subscribe

Assina os eventos canônicos do SDK. Para liberar o listener, use a assinatura, o callback de cancelamento ou a assinatura do stream retornada pela plataforma.

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

state getters

Retorna o estado atual do widget sem assinar eventos.

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

loadWidgetAppearance

Carrega o bundle validado de aparência ou conteúdo para o widget nativo.

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

loadWidgetContent

Carrega o bundle validado de aparência ou conteúdo para o widget nativo.

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

startSession

Inicia uma conversa com uma primeira mensagem idempotente.

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

resumeSession

Restaura o estado da conta ou uma sessão do servidor.

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

restoreSession

Restaura uma prova de sessão aceita e carrega seu snapshot.

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

refresh

Carrega o estado atual da conversa.

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

waitForAssistant

Consulta com tempo limitado até o trabalho do assistente terminar ou a espera expirar.

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

sendMessage

Envia uma mensagem e retorna o status de entrega.

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

attachments

Envia uma mensagem e retorna o status de entrega.

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

performOperation / performNativeOperation

Expõe operações tipadas de formulários, ferramentas do cliente, anexos e comércio pelo mecanismo nativo.

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

NativeOperation

Retorna JSON decodificado pela ponte nativa de operações. Trate validação, transporte, expiração e rejeição do 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"
Erros
  • field-invalid
  • unsupported
  • session-expired
  • http

submit-form request

Envia valores limitados para um formulário de conversa fornecido pelo servidor. O identificador e os valores são validados antes da solicitação nativa assinada.

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

Parâmetros

requestIdstringObrigatório
Envia valores limitados para um formulário de conversa fornecido pelo servidor. O identificador e os valores são validados antes da solicitação nativa assinada.
valuesJsonObjectObrigatório
Envia valores limitados para um formulário de conversa fornecido pelo servidor. O identificador e os valores são validados antes da solicitação nativa assinada.
Retorna
JsonValue
Erros
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected

request-client-tool request

Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.

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

Parâmetros

toolNamestringObrigatório
Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.
basisMessageIdstringObrigatório
Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.
inputClientToolPayloadObrigatório
Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.
Retorna
JsonValue
Erros
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

complete-client-tool request

Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.

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

Parâmetros

callIdstringObrigatório
Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.
outputClientToolPayloadObrigatório
Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.
Retorna
JsonValue
Erros
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

client-tool-status request

Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.

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

Parâmetros

callIdstringObrigatório
Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.
Retorna
JsonValue
Erros
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

procedure-action request

Avança uma ação de procedimento fornecida pelo servidor com uma chave de idempotência e a revisão esperada do fluxo.

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

Parâmetros

actionstart | answer | availability | select | calendar_date | back | confirm | declineObrigatório
Avança uma ação de procedimento fornecida pelo servidor com uma chave de idempotência e a revisão esperada do fluxo.
valuestringObrigatório
Avança uma ação de procedimento fornecida pelo servidor com uma chave de idempotência e a revisão esperada do fluxo.
idempotencyKeystring (16-128 characters)Obrigatório
Avança uma ação de procedimento fornecida pelo servidor com uma chave de idempotência e a revisão esperada do fluxo.
procedureId / runId / expectedUpdatedAtstring?
Avança uma ação de procedimento fornecida pelo servidor com uma chave de idempotência e a revisão esperada do fluxo.
locale"en" | "uk" | "de" | "es"?
Locale do widget para o conteúdo. A web usa auto por padrão; os bundles nativos aceitam atualmente en, uk, de e es.
stepId / parameterId / timeZonestring?
Avança uma ação de procedimento fornecida pelo servidor com uma chave de idempotência e a revisão esperada do fluxo.
nativeCommerceUitrue?
Avança uma ação de procedimento fornecida pelo servidor com uma chave de idempotência e a revisão esperada do fluxo.
Retorna
JsonValue
Erros
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected
  • idempotency-conflict

attachment-intents request

Cria intents de upload e envia arquivos locais selecionados dentro dos limites de tamanho, tipo, URI e política do SDK.

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

Parâmetros

messageIdstringObrigatório
Cria intents de upload e envia arquivos locais selecionados dentro dos limites de tamanho, tipo, URI e política do SDK.
attachmentsAttachmentDescriptor[] (1-5; each up to 10 MiB)Obrigatório
Cria intents de upload e envia arquivos locais selecionados dentro dos limites de tamanho, tipo, URI e política do SDK.
Retorna
JsonValue
Erros
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

upload-attachment request

Cria intents de upload e envia arquivos locais selecionados dentro dos limites de tamanho, tipo, URI e política do SDK.

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

Parâmetros

intentAttachmentUploadIntentObrigatório
Cria intents de upload e envia arquivos locais selecionados dentro dos limites de tamanho, tipo, URI e política do SDK.
fileUrifile:// or content:// URIObrigatório
Cria intents de upload e envia arquivos locais selecionados dentro dos limites de tamanho, tipo, URI e política do SDK.
mimeTypestringObrigatório
Cria intents de upload e envia arquivos locais selecionados dentro dos limites de tamanho, tipo, URI e política do SDK.
Retorna
JsonValue
Erros
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

list-orders request

Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.

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

Parâmetros

query.cursorstring?
Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.
query.storestring?
Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.
Retorna
JsonValue
Erros
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited

order-detail request

Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.

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

Parâmetros

orderRefstringObrigatório
Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.
Retorna
JsonValue
Erros
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

create-commerce-proposal request

Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.

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

Parâmetros

input.actionId"shopify_order_cancel"Obrigatório
Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.
input.selection.storeReferencestringObrigatório
Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.
input.selection.orderReferencestringObrigatório
Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.
input.selection.lineItems{ lineItemReference: string; quantity: number }[]?
Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.
idempotencyKeystring (16-128 characters)Obrigatório
Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.
Retorna
JsonValue
Erros
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • idempotency-conflict

confirm-commerce-proposal request

Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.

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

Parâmetros

proposalIdstringObrigatório
Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.
idempotencyKeystring (16-128 characters)Obrigatório
Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.
Retorna
JsonValue
Erros
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • not_found
  • idempotency-conflict

commerce-proposal request

Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.

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

Parâmetros

proposalIdstringObrigatório
Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.
Retorna
JsonValue
Erros
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

NativeOperationBridgeResult

Retorna JSON decodificado pela ponte nativa de operações. Trate validação, transporte, expiração e rejeição do servidor como resultados explícitos.

NativeOperationBridgeResult
{ valueJson: string }
Retorna
JsonValue
Erros
  • http

HostActionResult

Callbacks permitidos do aplicativo para ações guiadas do widget. Eles não autenticam solicitações de rede.

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

ClientToolRequest

Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.

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

ClientToolResult

Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.

ClientToolResult
{ callId: string; output: ClientToolPayload }

ProcedureActionInput

Avança uma ação de procedimento fornecida pelo servidor com uma chave de idempotência e a revisão esperada do fluxo.

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

Cria intents de upload e envia arquivos locais selecionados dentro dos limites de tamanho, tipo, URI e política do SDK.

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

AttachmentUploadIntent

Cria intents de upload e envia arquivos locais selecionados dentro dos limites de tamanho, tipo, URI e política do SDK.

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

CommerceOrderQuery

Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.

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

CommerceProposalInput

Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.

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

requestAttachmentIntents

Cria intents de upload e envia arquivos locais selecionados dentro dos limites de tamanho, tipo, URI e política do SDK.

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

uploadAttachment

Cria intents de upload e envia arquivos locais selecionados dentro dos limites de tamanho, tipo, URI e política do SDK.

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

downloadAttachment

Cria intents de upload e envia arquivos locais selecionados dentro dos limites de tamanho, tipo, URI e política do SDK.

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

canDownloadAttachment

Cria intents de upload e envia arquivos locais selecionados dentro dos limites de tamanho, tipo, URI e política do SDK.

canDownloadAttachment
canDownloadAttachment(downloadUrl: String): Boolean

requestClientTool

Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.

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

completeClientTool

Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.

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

clientToolStatus

Solicita uma ferramenta do cliente permitida, confirma o resultado ou consulta o estado. Os payloads são planos, limitados e rejeitam nomes de campos sensíveis.

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

submitConversationForm

Envia valores limitados para um formulário de conversa fornecido pelo servidor. O identificador e os valores são validados antes da solicitação nativa assinada.

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

performProcedureAction

Avança uma ação de procedimento fornecida pelo servidor com uma chave de idempotência e a revisão esperada do fluxo.

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

loadCommerceOrders

Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.

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

loadCommerceOrderDetail

Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.

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

createCommerceProposal

Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.

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

confirmCommerceProposal

Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.

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

commerceProposal

Lê dados de pedidos e cria, confirma ou consulta uma proposta limitada para cancelar um pedido da Shopify.

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

flushOutbox

Reenvia mutações pendentes com o corpo e a chave originais.

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

resetSession

Limpa a sessão, o snapshot e as mutações pendentes associados à conta.

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

Apresentação do widget

WidgetExperience

Objeto compartilhado appearance-v2: cores, tipografia, layout e sombra dentro dos limites documentados.

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

reducedMotion

Por padrão, segue o sistema e as políticas nativas de acessibilidade, energia e temperatura.

reducedMotion
system | always

WidgetLocaleCopies.forLocale

Carrega um mapa nativo incluído para os textos principais do widget. O catálogo valida esse contrato compartilhado e atualmente inclui en, uk, de e es; os rótulos derivados de procedimentos, funções e validação são separados.

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

WidgetCopy(values)

Cria ou lê os textos compartilhados validados do widget. Valores desconhecidos, ausentes, vazios ou longos demais são rejeitados antes da renderização.

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

WidgetCopy.requiredKeys

Cria ou lê os textos compartilhados validados do widget. Valores desconhecidos, ausentes, vazios ou longos demais são rejeitados antes da renderização.

WidgetCopy.requiredKeys
Set<String>

WidgetCopy.text

Cria ou lê os textos compartilhados validados do widget. Valores desconhecidos, ausentes, vazios ou longos demais são rejeitados antes da renderização.

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

WidgetExperience.decodeAndResolve

Decodifica e resolve o contrato de design compartilhado com overrides de plataforma, de textos e o estado do sistema do host para reduzir movimento.

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

Parâmetros

dataStringObrigatório
Decodifica e resolve o contrato de design compartilhado com overrides de plataforma, de textos e o estado do sistema do host para reduzir movimento.
platformStringObrigatório
Decodifica e resolve o contrato de design compartilhado com overrides de plataforma, de textos e o estado do sistema do host para reduzir movimento.
osReducedMotionBooleanObrigatório
Decodifica e resolve o contrato de design compartilhado com overrides de plataforma, de textos e o estado do sistema do host para reduzir movimento.
localeCopyMap<String, String>Obrigatório
Decodifica e resolve o contrato de design compartilhado com overrides de plataforma, de textos e o estado do sistema do host para reduzir movimento.
Retorna
WidgetExperience
Erros
  • field-invalid
  • unsupported

WidgetExperience.resolve

Decodifica e resolve o contrato de design compartilhado com overrides de plataforma, de textos e o estado do sistema do host para reduzir movimento.

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

Parâmetros

inputWidgetExperienceInputObrigatório
Decodifica e resolve o contrato de design compartilhado com overrides de plataforma, de textos e o estado do sistema do host para reduzir movimento.
platformStringObrigatório
Decodifica e resolve o contrato de design compartilhado com overrides de plataforma, de textos e o estado do sistema do host para reduzir movimento.
osReducedMotionBooleanObrigatório
Decodifica e resolve o contrato de design compartilhado com overrides de plataforma, de textos e o estado do sistema do host para reduzir movimento.
localeCopyMap<String, String>Obrigatório
Decodifica e resolve o contrato de design compartilhado com overrides de plataforma, de textos e o estado do sistema do host para reduzir movimento.
Retorna
WidgetExperience
Erros
  • field-invalid
  • unsupported

DobroDeskWidgetBridgePresenter.present

Apresenta o widget nativo com o contrato compartilhado.

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

close / detach

Fecha a apresentação nativa atual ou libera um host montado.

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

DobroDeskWidgetBridgePresenter.createEmbedded

Apresenta o widget nativo com o contrato compartilhado.

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

DobroDeskWidgetEmbeddedHandle

Opções de navegação nativa e de apresentação do launcher ou painel web.

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

Recursos opcionais

voiceFactory

Instala ou remove a fábrica de voz nativa opcional usada pelas apresentações do widget.

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

voice lifecycle

Controla um recurso de voz opcional instalado pelo host: iniciar, parar, silenciar, barge-in e liberar recursos. O widget web pode mostrar uma interface de voz, mas esta API do SDK controla apenas uma ponte de voz fornecida pelo host.

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

push

Descreve o artefato push nativo opcional e o registo do host. Os wrappers de framework não exportam um cliente push JavaScript ou Dart; use o módulo nativo iOS ou Android.

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

Erros

SdkErrorCode

Trate códigos estáveis legíveis por máquina e mantenha os diagnósticos do servidor fora da interface do 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