Zum Hauptinhalt springen
DokumentationiOS
Version 0.2.0iOS 15.1 oder höher

iOS SDK: API-Referenz

iOS: Native APIs für signierten Transport, Widget-UI-Status, Wiederholungen und dauerhafte Offline-Zustellung.

Auf dieser Seite

Konfiguration

apiOrigin

Erforderlich

Der API-Origin ist in der Produktion HTTPS. Native Clients erlauben HTTP auf localhost für die Entwicklung.

apiOrigin
URL

integrationId

Erforderlich

Die öffentliche Integrationskennung aus dem DobroDesk-Widget-Kanal.

integrationId
String

accountScope

Erforderlich

Ein stabiler Kunden- oder Kontoschlüssel, der dauerhaften Sitzungs- und Outbox-Zustand isoliert.

accountScope
String

locale

Standardwert: en

Widget-Locale für Inhalte. Web verwendet standardmäßig auto; native Widget-Bundles unterstützen derzeit en, uk, de und es.

locale
String = "en"

credentialProvider

Erforderlich

Eine Backend-Funktion für ein kurzlebiges signiertes Kunden-JWT. Das Signiergeheimnis bleibt außerhalb der App.

credentialProvider
() async throws -> String

turnstileToken

Ein optionales Turnstile-Token für Integrationen, die es benötigen.

turnstileToken
String?

pollInterval

Standardwert: 1

Ein begrenztes Intervall zum Abfragen einer asynchronen Antwort des Assistenten.

pollInterval
TimeInterval = 1

Lebenszyklus und Unterhaltung

DobroDeskClient

Erstellt den Client und prüft die Integrationskonfiguration.

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

events

Abonniert kanonische SDK-Ereignisse. Zum Freigeben des Listeners verwenden Sie die von der Plattform gelieferte Subscription, den Abbruch-Callback oder die Stream-Subscription.

events
events() -> AsyncStream<DobroDeskEvent>

state getters

Liefert den aktuellen Widget-Status ohne Abonnement.

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

loadWidgetAppearance

Lädt das validierte Appearance- oder Content-Bundle für das native Widget.

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

loadWidgetContent

Lädt das validierte Appearance- oder Content-Bundle für das native Widget.

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

startSession

Startet eine Unterhaltung mit idempotenter erster Nachricht.

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

Parameter

messageStringErforderlich
Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
idempotencyKeyString?
Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
prefillPrefill?
Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
metadataJSON object?
Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
timeZoneString?
Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
Fehler
  • network
  • field-invalid
  • idempotency-conflict
  • outbox-corrupt

resumeSession

Stellt den Kontostatus oder eine Serversitzung wieder her.

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

restoreSession

Stellt einen akzeptierten Sitzungsnachweis wieder her und lädt dessen Snapshot.

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

refresh

Lädt den aktuellen Unterhaltungsverlauf.

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

waitForAssistant

Fragt mit begrenztem Timing ab, bis die Arbeit des Assistenten abgeschlossen ist oder die Wartezeit endet.

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

Parameter

timeoutnumberStandardwert: 30s
Ein begrenztes Intervall zum Abfragen einer asynchronen Antwort des Assistenten.
afterMessageCountnumber?
Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
Fehler
  • realtime-unavailable
  • network
  • session-expired

sendMessage

Sendet eine Nachricht und liefert ihren Lieferstatus.

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

Parameter

textStringErforderlich
Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
idempotencyKeyString?
Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
Fehler
  • network
  • idempotency-conflict
  • conversation-stale
  • rate-limited
  • message-rejected

attachments

Sendet eine Nachricht und liefert ihren Lieferstatus.

attachments
startSession(_:attachments:), sendMessage(_:attachments:)
Fehler
  • attachment_policy_failed
  • attachment_rate_limited
  • session-expired
  • outbox-corrupt

performOperation / performNativeOperation

Stellt typisierte Formular-, Client-Tool-, Anhang- und Commerce-Operationen über die native Engine bereit.

performOperation / performNativeOperation
performOperation(requestJson: String) async throws -> String
Fehler
  • field-invalid
  • unsupported
  • session-expired
  • http

NativeOperation

Liefert dekodiertes JSON aus der nativen Operationsbrücke. Behandeln Sie Validierungs-, Transport-, Ablauf- und Serverablehnungen ausdrücklich.

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

submit-form request

Übermittelt begrenzte Werte für ein vom Server bereitgestelltes Gesprächsformular. Anfragekennung und Werte werden vor der signierten nativen Anfrage geprüft.

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

Parameter

requestIdstringErforderlich
Übermittelt begrenzte Werte für ein vom Server bereitgestelltes Gesprächsformular. Anfragekennung und Werte werden vor der signierten nativen Anfrage geprüft.
valuesJsonObjectErforderlich
Übermittelt begrenzte Werte für ein vom Server bereitgestelltes Gesprächsformular. Anfragekennung und Werte werden vor der signierten nativen Anfrage geprüft.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected

request-client-tool request

Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.

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

Parameter

toolNamestringErforderlich
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
basisMessageIdstringErforderlich
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
inputClientToolPayloadErforderlich
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

complete-client-tool request

Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.

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

Parameter

callIdstringErforderlich
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
outputClientToolPayloadErforderlich
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

client-tool-status request

Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.

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

Parameter

callIdstringErforderlich
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

procedure-action request

Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.

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

Parameter

actionstart | answer | availability | select | calendar_date | back | confirm | declineErforderlich
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
valuestringErforderlich
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
idempotencyKeystring (16-128 characters)Erforderlich
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
procedureId / runId / expectedUpdatedAtstring?
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
locale"en" | "uk" | "de" | "es"?
Widget-Locale für Inhalte. Web verwendet standardmäßig auto; native Widget-Bundles unterstützen derzeit en, uk, de und es.
stepId / parameterId / timeZonestring?
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
nativeCommerceUitrue?
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected
  • idempotency-conflict

attachment-intents request

Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.

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

Parameter

messageIdstringErforderlich
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
attachmentsAttachmentDescriptor[] (1-5; each up to 10 MiB)Erforderlich
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

upload-attachment request

Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.

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

Parameter

intentAttachmentUploadIntentErforderlich
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
fileUrifile:// or content:// URIErforderlich
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
mimeTypestringErforderlich
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

list-orders request

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

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

Parameter

query.cursorstring?
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
query.storestring?
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited

order-detail request

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

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

Parameter

orderRefstringErforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

create-commerce-proposal request

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

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

Parameter

input.actionId"shopify_order_cancel"Erforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
input.selection.storeReferencestringErforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
input.selection.orderReferencestringErforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
input.selection.lineItems{ lineItemReference: string; quantity: number }[]?
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
idempotencyKeystring (16-128 characters)Erforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • idempotency-conflict

confirm-commerce-proposal request

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

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

Parameter

proposalIdstringErforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
idempotencyKeystring (16-128 characters)Erforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • not_found
  • idempotency-conflict

commerce-proposal request

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

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

Parameter

proposalIdstringErforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

NativeOperationBridgeResult

Liefert dekodiertes JSON aus der nativen Operationsbrücke. Behandeln Sie Validierungs-, Transport-, Ablauf- und Serverablehnungen ausdrücklich.

NativeOperationBridgeResult
{ valueJson: string }
Rückgabewert
JsonValue
Fehler
  • http

HostActionResult

Freigegebene Anwendungs-Callbacks für geführte Widget-Aktionen. Sie authentifizieren keine Netzwerkanfragen.

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

ClientToolRequest

Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.

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

ClientToolResult

Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.

ClientToolResult
{ callId: string; output: ClientToolPayload }

ProcedureActionInput

Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.

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

Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.

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

AttachmentUploadIntent

Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.

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

CommerceOrderQuery

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

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

CommerceProposalInput

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

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

flushOutbox

Wiederholt ausstehende Mutationen mit unverändertem Inhalt und Schlüssel.

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

resetSession

Löscht die kontobezogene Sitzung, den Snapshot und ausstehende Mutationen.

resetSession
resetSession() async throws
Fehler
  • request-in-progress
  • outbox-corrupt

Widget-Darstellung

WidgetExperience

Das gemeinsame appearance-v2-Objekt mit Farben, Typografie, Layout und Schatten innerhalb der dokumentierten Grenzen.

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

reducedMotion

Standardmäßig folgt die App der Systemeinstellung sowie den nativen Energiespar- und Thermalrichtlinien.

reducedMotion
system | always

DobroDeskWidgetLocaleCatalog.copy(for:)

Lädt eine integrierte native Karte für die Haupttexte des Widgets. Der Katalog prüft den gemeinsamen Textvertrag und enthält derzeit en, uk, de und es; abgeleitete Verfahrens-, Rollen- und Validierungstexte sind getrennt.

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

DobroDeskWidgetCopy.init(values:)

Erstellt oder liest die validierten gemeinsamen Widget-Texte. Unbekannte, fehlende, leere oder zu lange Werte werden vor der Darstellung abgelehnt.

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

DobroDeskWidgetCopy.requiredKeys

Erstellt oder liest die validierten gemeinsamen Widget-Texte. Unbekannte, fehlende, leere oder zu lange Werte werden vor der Darstellung abgelehnt.

DobroDeskWidgetCopy.requiredKeys
Set<String>

DobroDeskWidgetExperience.decodeAndResolve

Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.

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

Parameter

dataDataErforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
platformDobroDeskWidgetPlatformErforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
osReducedMotionBoolErforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
localeCopy[String: String]Erforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
decoderJSONDecoderStandardwert: JSONDecoder()
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
Rückgabewert
DobroDeskWidgetExperience
Fehler
  • field-invalid
  • unsupported

DobroDeskWidgetExperience.resolve

Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.

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

Parameter

inputDobroDeskWidgetExperienceInputErforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
platformDobroDeskWidgetPlatformErforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
osReducedMotionBoolErforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
localeCopy[String: String]Erforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
Rückgabewert
DobroDeskWidgetExperience
Fehler
  • field-invalid
  • unsupported

DobroDeskWidgetBridgePresenter.present

Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.

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

DobroDeskWidgetViewController

Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.

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

close

Schließt die aktuelle native Darstellung oder gibt einen gemounteten Host frei.

close
DobroDeskWidgetBridgePresenter.close(animated: Bool = true)

DobroDeskWidgetBridgePresenter.embed

Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.

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

setEmbeddedVisible

Optionen für native Navigation sowie die Darstellung des Web-Launchers oder Panels.

setEmbeddedVisible
setEmbeddedVisible(_ visible: Bool)

Optionale Funktionen

voiceFactory

Installiert oder entfernt die optionale native Sprachfabrik für Widget-Darstellungen.

voiceFactory
DobroDeskWidgetBridgePresenter.installVoiceFactory(_ factory: DobroDeskWidgetVoiceFactory); uninstallVoiceFactory()
Fehler
  • unsupported
  • invalid-config

voice lifecycle

Steuert eine optionale, vom Host installierte Sprachfunktion: Start, Stopp, Stummschaltung, Barge-in und Freigabe. Das Browser-Widget kann eine Sprachoberfläche anzeigen, aber diese SDK-API steuert nur eine vom Host bereitgestellte Sprachbrücke.

voice lifecycle
DobroDeskVoiceClient.start(), stop(), setMuted(), bargeIn(), pauseForBackground(), resumeAfterForeground(), handleAudioInterruption(ended:shouldResume:), handleRouteChange()
Fehler
  • invalid-configuration
  • permission-denied
  • audio-unavailable
  • session-expired
  • realtime-unavailable
  • invalid-response
  • protocol-violation
  • stale-frame
  • queue-overloaded
  • cancelled
  • unsupported

push

Beschreibt das optionale native Push-Artefakt und die Host-Registrierung. Framework-Wrapper exportieren keinen JavaScript- oder Dart-Push-Client; verwenden Sie das native iOS- oder Android-Modul.

push
iOS: DobroDeskPush product

Fehler

SdkErrorCode

Behandeln Sie stabile maschinenlesbare Codes und halten Sie Serverdiagnosen aus der Kundenoberfläche fern.

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