Pular para o conteúdo principal
DocumentaçãoiOS
Versão 0.2.0iOS 15.1 ou posterior

iOS SDK: Referência da API

iOS: 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

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

turnstileToken

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

turnstileToken
String?

pollInterval

Valor padrão: 1

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

pollInterval
TimeInterval = 1

Ciclo de vida e conversa

DobroDeskClient

Cria o cliente e valida a configuração.

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

events

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.

events
events() -> AsyncStream<DobroDeskEvent>

state getters

Retorna o estado atual do widget sem assinar eventos.

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

loadWidgetAppearance

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

loadWidgetAppearance
loadWidgetAppearance() async throws -> [String: JSONValue]
Erros
  • network
  • http
  • session-expired

loadWidgetContent

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

loadWidgetContent
loadWidgetContent() async throws -> DobroDeskWidgetContentSnapshot
Erros
  • network
  • http
  • field-invalid

startSession

Inicia uma conversa com uma primeira mensagem idempotente.

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

Parâmetros

messageStringObrigatório
Contexto JSON limitado fornecido a ações do host registradas explicitamente.
idempotencyKeyString?
Contexto JSON limitado fornecido a ações do host registradas explicitamente.
prefillPrefill?
Contexto JSON limitado fornecido a ações do host registradas explicitamente.
metadataJSON object?
Contexto JSON limitado fornecido a ações do host registradas explicitamente.
timeZoneString?
Contexto JSON limitado fornecido a ações do host registradas explicitamente.
Erros
  • network
  • field-invalid
  • idempotency-conflict
  • outbox-corrupt

resumeSession

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

resumeSession
resumeSession() async throws -> DobroDeskSession?
Erros
  • network
  • session-expired
  • outbox-corrupt

restoreSession

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

restoreSession
restoreSession(_ restored: DobroDeskSession) async throws -> DobroDeskSnapshot
Erros
  • session-expired
  • network

refresh

Carrega o estado atual da conversa.

refresh
refresh() async throws -> DobroDeskSnapshot
Erros
  • network
  • session-expired
  • message-rejected

waitForAssistant

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

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

Parâmetros

timeoutnumberValor padrão: 30s
Intervalo limitado usado ao consultar uma resposta assíncrona do assistente.
afterMessageCountnumber?
Contexto JSON limitado fornecido a ações do host registradas explicitamente.
Erros
  • realtime-unavailable
  • network
  • session-expired

sendMessage

Envia uma mensagem e retorna o status de entrega.

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

Parâmetros

textStringObrigatório
Contexto JSON limitado fornecido a ações do host registradas explicitamente.
idempotencyKeyString?
Contexto JSON limitado fornecido a ações do host registradas explicitamente.
Erros
  • network
  • idempotency-conflict
  • conversation-stale
  • rate-limited
  • message-rejected

attachments

Envia uma mensagem e retorna o status de entrega.

attachments
startSession(_:attachments:), sendMessage(_:attachments:)
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
performOperation(requestJson: String) async throws -> 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 }[] } }

flushOutbox

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

flushOutbox
flushOutbox() async throws -> [DobroDeskAcceptedMessage]
Erros
  • network
  • outbox-corrupt
  • session-expired

resetSession

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

resetSession
resetSession() async throws
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

DobroDeskWidgetLocaleCatalog.copy(for:)

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.

DobroDeskWidgetLocaleCatalog.copy(for:)
DobroDeskWidgetLocaleCatalog.copy(for locale: String) throws -> [String: String]
Erros
  • field-invalid

DobroDeskWidgetCopy.init(values:)

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

DobroDeskWidgetCopy.init(values:)
DobroDeskWidgetCopy(values: [String: String]) throws -> DobroDeskWidgetCopy
Erros
  • field-invalid

DobroDeskWidgetCopy.requiredKeys

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

DobroDeskWidgetCopy.requiredKeys
Set<String>

DobroDeskWidgetExperience.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.

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

Parâmetros

dataDataObrigató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.
platformDobroDeskWidgetPlatformObrigató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.
osReducedMotionBoolObrigató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.
localeCopy[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.
decoderJSONDecoderValor padrão: JSONDecoder()
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
DobroDeskWidgetExperience
Erros
  • field-invalid
  • unsupported

DobroDeskWidgetExperience.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.

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

Parâmetros

inputDobroDeskWidgetExperienceInputObrigató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.
platformDobroDeskWidgetPlatformObrigató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.
osReducedMotionBoolObrigató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.
localeCopy[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
DobroDeskWidgetExperience
Erros
  • field-invalid
  • unsupported

DobroDeskWidgetBridgePresenter.present

Apresenta o widget nativo com o contrato compartilhado.

DobroDeskWidgetBridgePresenter.present
present(client: DobroDeskClient, options: NSDictionary, from: UIViewController) async throws
Erros
  • request-in-progress
  • invalid-config
  • field-invalid
  • unsupported

DobroDeskWidgetViewController

Apresenta o widget nativo com o contrato compartilhado.

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

close

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

close
DobroDeskWidgetBridgePresenter.close(animated: Bool = true)

DobroDeskWidgetBridgePresenter.embed

Apresenta o widget nativo com o contrato compartilhado.

DobroDeskWidgetBridgePresenter.embed
embed(client: DobroDeskClient, options: NSDictionary, in container: UIView, parent: UIViewController) async throws
Erros
  • request-in-progress
  • invalid-config
  • field-invalid
  • unsupported

setEmbeddedVisible

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

setEmbeddedVisible
setEmbeddedVisible(_ visible: Bool)

Recursos opcionais

voiceFactory

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

voiceFactory
DobroDeskWidgetBridgePresenter.installVoiceFactory(_ factory: DobroDeskWidgetVoiceFactory); 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
DobroDeskVoiceClient.start(), stop(), setMuted(), bargeIn(), pauseForBackground(), resumeAfterForeground(), handleAudioInterruption(ended:shouldResume:), handleRouteChange()
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

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