Aller au contenu principal
DocumentationAndroid
Version 0.2.0Android API 26 ou version ultérieure

Android SDK: Référence API

Android: API natives pour le transport signé, l'état de l'interface du widget, les reprises et la livraison hors ligne durable.

Sur cette page

Configuration

apiOrigin

Obligatoire

L'origine de l'API utilise HTTPS en production. Les clients natifs autorisent HTTP sur localhost pour le développement.

apiOrigin
URL | String

integrationId

Obligatoire

Identifiant d'intégration public copié depuis le canal de widget DobroDesk.

integrationId
String

accountScope

Obligatoire

Clé stable du client ou du compte qui isole l'état durable de la session et de la boîte d'envoi.

accountScope
String

locale

Valeur par défaut: en

Locale du widget pour le contenu. Le web utilise auto par défaut; les bundles natifs prennent actuellement en, uk, de et es en charge.

locale
String = "en"

credentialProvider

Obligatoire

Une fonction backend qui renvoie un JWT client signé et de courte durée. Le secret de signature reste hors de l'application.

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

turnstileToken

Jeton Turnstile facultatif pour les intégrations qui l'exigent.

turnstileToken
String?

pollInterval

Valeur par défaut: 1s

Intervalle limité utilisé pour interroger une réponse asynchrone de l'assistant.

pollInterval
TimeInterval | Duration = 1s

Cycle de vie et conversation

DobroDeskClient

Crée le client et valide la configuration.

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

subscribe

S'abonne aux événements canoniques du SDK. Pour libérer l'écouteur, utilisez l'abonnement, le callback d'annulation ou l'abonnement au flux renvoyé par la plateforme.

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

state getters

Renvoie l'état actuel du widget sans abonnement.

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

loadWidgetAppearance

Charge le bundle d'apparence ou de contenu validé pour le widget natif.

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

loadWidgetContent

Charge le bundle d'apparence ou de contenu validé pour le widget natif.

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

startSession

Démarre une conversation avec un premier message idempotent.

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

resumeSession

Restaure l'état du compte ou une session serveur.

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

restoreSession

Restaure une preuve de session acceptée et charge son snapshot.

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

refresh

Charge l'état actuel de la conversation.

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

waitForAssistant

Interroge avec un délai limité jusqu'à la fin du travail de l'assistant ou l'expiration de l'attente.

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

sendMessage

Envoie un message et renvoie son état de livraison.

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

attachments

Envoie un message et renvoie son état de livraison.

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

performOperation / performNativeOperation

Expose des opérations typées de formulaires, outils client, pièces jointes et commerce via le moteur natif.

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

NativeOperation

Renvoie le JSON décodé par le pont natif des opérations. Traitez validation, transport, expiration et refus du serveur comme des résultats explicites.

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

submit-form request

Envoie des valeurs limitées pour un formulaire de conversation fourni par le serveur. L'identifiant et les valeurs sont validés avant la requête native signée.

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

Paramètres

requestIdstringObligatoire
Envoie des valeurs limitées pour un formulaire de conversation fourni par le serveur. L'identifiant et les valeurs sont validés avant la requête native signée.
valuesJsonObjectObligatoire
Envoie des valeurs limitées pour un formulaire de conversation fourni par le serveur. L'identifiant et les valeurs sont validés avant la requête native signée.
Renvoie
JsonValue
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected

request-client-tool request

Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.

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

Paramètres

toolNamestringObligatoire
Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.
basisMessageIdstringObligatoire
Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.
inputClientToolPayloadObligatoire
Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.
Renvoie
JsonValue
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

complete-client-tool request

Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.

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

Paramètres

callIdstringObligatoire
Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.
outputClientToolPayloadObligatoire
Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.
Renvoie
JsonValue
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

client-tool-status request

Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.

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

Paramètres

callIdstringObligatoire
Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.
Renvoie
JsonValue
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

procedure-action request

Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.

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

Paramètres

actionstart | answer | availability | select | calendar_date | back | confirm | declineObligatoire
Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.
valuestringObligatoire
Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.
idempotencyKeystring (16-128 characters)Obligatoire
Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.
procedureId / runId / expectedUpdatedAtstring?
Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.
locale"en" | "uk" | "de" | "es"?
Locale du widget pour le contenu. Le web utilise auto par défaut; les bundles natifs prennent actuellement en, uk, de et es en charge.
stepId / parameterId / timeZonestring?
Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.
nativeCommerceUitrue?
Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.
Renvoie
JsonValue
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected
  • idempotency-conflict

attachment-intents request

Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.

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

Paramètres

messageIdstringObligatoire
Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.
attachmentsAttachmentDescriptor[] (1-5; each up to 10 MiB)Obligatoire
Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.
Renvoie
JsonValue
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

upload-attachment request

Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.

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

Paramètres

intentAttachmentUploadIntentObligatoire
Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.
fileUrifile:// or content:// URIObligatoire
Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.
mimeTypestringObligatoire
Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.
Renvoie
JsonValue
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

list-orders request

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

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

Paramètres

query.cursorstring?
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
query.storestring?
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
Renvoie
JsonValue
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited

order-detail request

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

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

Paramètres

orderRefstringObligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
Renvoie
JsonValue
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

create-commerce-proposal request

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

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

Paramètres

input.actionId"shopify_order_cancel"Obligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
input.selection.storeReferencestringObligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
input.selection.orderReferencestringObligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
input.selection.lineItems{ lineItemReference: string; quantity: number }[]?
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
idempotencyKeystring (16-128 characters)Obligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
Renvoie
JsonValue
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • idempotency-conflict

confirm-commerce-proposal request

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

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

Paramètres

proposalIdstringObligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
idempotencyKeystring (16-128 characters)Obligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
Renvoie
JsonValue
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • not_found
  • idempotency-conflict

commerce-proposal request

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

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

Paramètres

proposalIdstringObligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
Renvoie
JsonValue
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

NativeOperationBridgeResult

Renvoie le JSON décodé par le pont natif des opérations. Traitez validation, transport, expiration et refus du serveur comme des résultats explicites.

NativeOperationBridgeResult
{ valueJson: string }
Renvoie
JsonValue
Erreurs
  • http

HostActionResult

Callbacks d'application autorisés pour les actions guidées du widget. Ils n'authentifient pas les requêtes réseau.

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

ClientToolRequest

Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.

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

ClientToolResult

Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.

ClientToolResult
{ callId: string; output: ClientToolPayload }

ProcedureActionInput

Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du 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

Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.

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

AttachmentUploadIntent

Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.

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

CommerceOrderQuery

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

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

CommerceProposalInput

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

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

requestAttachmentIntents

Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.

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

uploadAttachment

Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.

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

downloadAttachment

Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.

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

canDownloadAttachment

Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.

canDownloadAttachment
canDownloadAttachment(downloadUrl: String): Boolean

requestClientTool

Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.

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

completeClientTool

Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.

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

clientToolStatus

Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.

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

submitConversationForm

Envoie des valeurs limitées pour un formulaire de conversation fourni par le serveur. L'identifiant et les valeurs sont validés avant la requête native signée.

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

performProcedureAction

Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.

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

loadCommerceOrders

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

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

loadCommerceOrderDetail

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

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

createCommerceProposal

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

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

confirmCommerceProposal

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

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

commerceProposal

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

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

flushOutbox

Rejoue les mutations en attente avec le corps et la clé d'origine.

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

resetSession

Efface la session, le snapshot et les mutations en attente associés au compte.

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

Présentation du widget

WidgetExperience

Objet partagé appearance-v2: couleurs, typographie, mise en page et ombre dans les limites documentées.

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

reducedMotion

Par défaut, le système et les politiques natives d'accessibilité, d'énergie et de température sont suivis.

reducedMotion
system | always

WidgetLocaleCopies.forLocale

Charge une carte native intégrée pour les textes principaux du widget. Le catalogue valide ce contrat partagé et inclut actuellement en, uk, de et es; les libellés dérivés des procédures, rôles et validations sont séparés.

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

WidgetCopy(values)

Construit ou lit les textes partagés validés du widget. Les valeurs inconnues, manquantes, vides ou trop longues sont refusées avant l'affichage.

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

WidgetCopy.requiredKeys

Construit ou lit les textes partagés validés du widget. Les valeurs inconnues, manquantes, vides ou trop longues sont refusées avant l'affichage.

WidgetCopy.requiredKeys
Set<String>

WidgetCopy.text

Construit ou lit les textes partagés validés du widget. Les valeurs inconnues, manquantes, vides ou trop longues sont refusées avant l'affichage.

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

WidgetExperience.decodeAndResolve

Décode et résout le contrat de design partagé avec les remplacements de plateforme et de textes ainsi que l'état système de réduction des mouvements de l'hôte.

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

Paramètres

dataStringObligatoire
Décode et résout le contrat de design partagé avec les remplacements de plateforme et de textes ainsi que l'état système de réduction des mouvements de l'hôte.
platformStringObligatoire
Décode et résout le contrat de design partagé avec les remplacements de plateforme et de textes ainsi que l'état système de réduction des mouvements de l'hôte.
osReducedMotionBooleanObligatoire
Décode et résout le contrat de design partagé avec les remplacements de plateforme et de textes ainsi que l'état système de réduction des mouvements de l'hôte.
localeCopyMap<String, String>Obligatoire
Décode et résout le contrat de design partagé avec les remplacements de plateforme et de textes ainsi que l'état système de réduction des mouvements de l'hôte.
Renvoie
WidgetExperience
Erreurs
  • field-invalid
  • unsupported

WidgetExperience.resolve

Décode et résout le contrat de design partagé avec les remplacements de plateforme et de textes ainsi que l'état système de réduction des mouvements de l'hôte.

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

Paramètres

inputWidgetExperienceInputObligatoire
Décode et résout le contrat de design partagé avec les remplacements de plateforme et de textes ainsi que l'état système de réduction des mouvements de l'hôte.
platformStringObligatoire
Décode et résout le contrat de design partagé avec les remplacements de plateforme et de textes ainsi que l'état système de réduction des mouvements de l'hôte.
osReducedMotionBooleanObligatoire
Décode et résout le contrat de design partagé avec les remplacements de plateforme et de textes ainsi que l'état système de réduction des mouvements de l'hôte.
localeCopyMap<String, String>Obligatoire
Décode et résout le contrat de design partagé avec les remplacements de plateforme et de textes ainsi que l'état système de réduction des mouvements de l'hôte.
Renvoie
WidgetExperience
Erreurs
  • field-invalid
  • unsupported

DobroDeskWidgetBridgePresenter.present

Présente le widget natif avec le contrat partagé.

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

close / detach

Ferme la présentation native actuelle ou libère un hôte monté.

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

DobroDeskWidgetBridgePresenter.createEmbedded

Présente le widget natif avec le contrat partagé.

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

DobroDeskWidgetEmbeddedHandle

Options de navigation native et de présentation du launcher ou du panneau web.

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

Fonctionnalités optionnelles

voiceFactory

Installe ou retire la fabrique vocale native optionnelle utilisée par les présentations du widget.

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

voice lifecycle

Contrôle une fonction vocale optionnelle installée par l'hôte: démarrage, arrêt, silencieux, barge-in et libération. Le widget web peut afficher une interface vocale, mais cette API du SDK contrôle uniquement un pont vocal fourni par l'hôte.

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

push

Décrit l'artefact push natif optionnel et l'enregistrement de l'hôte. Les wrappers de framework n'exportent pas de client push JavaScript ou Dart ; utilisez le module natif iOS ou Android.

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

Erreurs

SdkErrorCode

Gérez les codes stables lisibles par machine et gardez les diagnostics du serveur hors de l'interface client.

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