Aller au contenu principal
DocumentationiOS
Version 0.2.0iOS 15.1 ou version ultérieure

iOS SDK: Référence API

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

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

turnstileToken

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

turnstileToken
String?

pollInterval

Valeur par défaut: 1

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

pollInterval
TimeInterval = 1

Cycle de vie et conversation

DobroDeskClient

Crée le client et valide la configuration.

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

events

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.

events
events() -> AsyncStream<DobroDeskEvent>

state getters

Renvoie l'état actuel du widget sans abonnement.

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

loadWidgetAppearance

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

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

loadWidgetContent

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

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

startSession

Démarre une conversation avec un premier message idempotent.

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

Paramètres

messageStringObligatoire
Contexte JSON limité fourni aux actions d'hôte explicitement enregistrées.
idempotencyKeyString?
Contexte JSON limité fourni aux actions d'hôte explicitement enregistrées.
prefillPrefill?
Contexte JSON limité fourni aux actions d'hôte explicitement enregistrées.
metadataJSON object?
Contexte JSON limité fourni aux actions d'hôte explicitement enregistrées.
timeZoneString?
Contexte JSON limité fourni aux actions d'hôte explicitement enregistrées.
Erreurs
  • network
  • field-invalid
  • idempotency-conflict
  • outbox-corrupt

resumeSession

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

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

restoreSession

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

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

refresh

Charge l'état actuel de la conversation.

refresh
refresh() async throws -> DobroDeskSnapshot
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: TimeInterval = 30, afterMessageCount: Int? = nil) async throws -> DobroDeskSnapshot

Paramètres

timeoutnumberValeur par défaut: 30s
Intervalle limité utilisé pour interroger une réponse asynchrone de l'assistant.
afterMessageCountnumber?
Contexte JSON limité fourni aux actions d'hôte explicitement enregistrées.
Erreurs
  • realtime-unavailable
  • network
  • session-expired

sendMessage

Envoie un message et renvoie son état de livraison.

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

Paramètres

textStringObligatoire
Contexte JSON limité fourni aux actions d'hôte explicitement enregistrées.
idempotencyKeyString?
Contexte JSON limité fourni aux actions d'hôte explicitement enregistrées.
Erreurs
  • network
  • idempotency-conflict
  • conversation-stale
  • rate-limited
  • message-rejected

attachments

Envoie un message et renvoie son état de livraison.

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

flushOutbox

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

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

resetSession

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

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

DobroDeskWidgetLocaleCatalog.copy(for:)

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.

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

DobroDeskWidgetCopy.init(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.

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

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

DobroDeskWidgetCopy.requiredKeys
Set<String>

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

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

Paramètres

dataDataObligatoire
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.
platformDobroDeskWidgetPlatformObligatoire
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.
osReducedMotionBoolObligatoire
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.
localeCopy[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.
decoderJSONDecoderValeur par défaut: JSONDecoder()
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
DobroDeskWidgetExperience
Erreurs
  • field-invalid
  • unsupported

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

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

Paramètres

inputDobroDeskWidgetExperienceInputObligatoire
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.
platformDobroDeskWidgetPlatformObligatoire
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.
osReducedMotionBoolObligatoire
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.
localeCopy[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
DobroDeskWidgetExperience
Erreurs
  • field-invalid
  • unsupported

DobroDeskWidgetBridgePresenter.present

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

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

DobroDeskWidgetViewController

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

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

close

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

close
DobroDeskWidgetBridgePresenter.close(animated: Bool = true)

DobroDeskWidgetBridgePresenter.embed

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

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

setEmbeddedVisible

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

setEmbeddedVisible
setEmbeddedVisible(_ visible: Bool)

Fonctionnalités optionnelles

voiceFactory

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

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

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