Zum Hauptinhalt springen
DokumentationFlutter
Version 0.2.0Flutter 3.22.3 und Dart 3.4 oder höher

Flutter SDK: API-Referenz

Flutter: Eine typisierte Brücke zu den gemeinsamen nativen iOS- und Android-Engines für das ausgewählte mobile Framework.

Auf dieser Seite

Konfiguration

DobroDeskFlutterClient

Erforderlich

Die Framework-Konfiguration liefert App-Identität und Kontobereich und bezieht über den Credential-Provider des Hosts ein neues kurzlebiges Authorization-Token. Token- und Ergebnisformen entsprechen der angezeigten Plattform-Signatur.

DobroDeskFlutterClient
DobroDeskFlutterClient({ required String integrationId, required String apiOrigin, required String accountScope, String? authorizationToken, Future<String> Function()? credentialProvider, String locale = 'en', Duration pollInterval = const Duration(seconds: 1), Map<String, Object?>? context, Map<String, DobroDeskHostActionHandler>? hostActions, MethodChannel? methodChannel, EventChannel? eventChannel })
Fehler
  • invalid-config

Lebenszyklus und Unterhaltung

DobroDeskFlutterClient

Erstellt den Client und prüft die Integrationskonfiguration.

DobroDeskFlutterClient
new DobroDeskFlutterClient({ integrationId, apiOrigin, accountScope, authorizationToken?, credentialProvider? })

startSession

Startet eine Unterhaltung mit idempotenter erster Nachricht.

startSession
startSession(String message, { prefill?, idempotencyKey?, metadata?, timeZone?, turnstileToken?, startedAt? }): Future<DobroDeskSession>
Fehler
  • network
  • field-invalid
  • idempotency-conflict
  • outbox-corrupt

resumeSession

Stellt den Kontostatus oder eine Serversitzung wieder her.

resumeSession
resumeSession(): Future<DobroDeskSession?>
Fehler
  • network
  • session-expired
  • outbox-corrupt

refresh

Lädt den aktuellen Unterhaltungsverlauf.

refresh
refresh(): Future<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?, afterMessageCount? }): Future<DobroDeskSnapshot>
Fehler
  • realtime-unavailable
  • network
  • session-expired

sendMessage

Sendet eine Nachricht und liefert ihren Lieferstatus.

sendMessage
sendMessage(String text, { String? idempotencyKey }): Future<DobroDeskAcceptedMessage>
Fehler
  • network
  • idempotency-conflict
  • conversation-stale
  • rate-limited
  • message-rejected

flushOutbox

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

flushOutbox
flushOutbox(): Future<List<DobroDeskAcceptedMessage>>
Fehler
  • network
  • outbox-corrupt
  • session-expired

resetSession

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

resetSession
resetSession(): Future<void>
Fehler
  • request-in-progress
  • outbox-corrupt

setAuthorizationToken

Übergibt einem nativen Bridge das aktuelle kurzlebige Token.

setAuthorizationToken
setAuthorizationToken(String token): Future<void>

logout

Beendet die Kundensitzung und optionale Funktionen.

logout
logout(): Future<void>
Fehler
  • outbox-corrupt

presentWidget

Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.

presentWidget
presentWidget({ title?, subtitle?, appearance?, platform?, reduceMotion?, view?, articleId?, context?, hostActionIds? }): Future<void>

Parameter

titleString?
Begrenzte Überschreibungen für die gemeinsamen Widget-Texte.
subtitleString?
Begrenzte Überschreibungen für die gemeinsamen Widget-Texte.
appearanceMap<String, Object?>?
Das gemeinsame appearance-v2-Objekt mit Farben, Typografie, Layout und Schatten innerhalb der dokumentierten Grenzen.
platformMap<String, Object?>?
Plattformspezifische Anpassungen für Safe Area, Tastatur und Navigation innerhalb des gemeinsamen Designvertrags.
reduceMotionbool?Standardwert: system
Standardmäßig folgt die App der Systemeinstellung sowie den nativen Energiespar- und Thermalrichtlinien.
viewString?
Optionen für native Navigation sowie die Darstellung des Web-Launchers oder Panels.
articleIdString?
Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
contextMap<String, Object?>?
Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
hostActionIdsList<String>?
Freigegebene Anwendungs-Callbacks für geführte Widget-Aktionen. Sie authentifizieren keine Netzwerkanfragen.
Fehler
  • invalid-config
  • request-in-progress
  • field-invalid

closeWidget

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

closeWidget
closeWidget(): Future<void>

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: Stream<DobroDeskEvent>

operations

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

operations
operations: DobroDeskOperations

submitForm

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

submitForm
operations.submitForm(String requestId, Map<String, Object?> values): Future<Object?>

Parameter

requestIdStringErforderlich
Übermittelt begrenzte Werte für ein vom Server bereitgestelltes Gesprächsformular. Anfragekennung und Werte werden vor der signierten nativen Anfrage geprüft.
valuesMap<String, Object?>Erforderlich
Übermittelt begrenzte Werte für ein vom Server bereitgestelltes Gesprächsformular. Anfragekennung und Werte werden vor der signierten nativen Anfrage geprüft.
Rückgabewert
Future<Object?>
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected

requestClientTool

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

requestClientTool
operations.requestClientTool(input: DobroDeskClientToolRequest): Future<Object?>

Parameter

inputDobroDeskClientToolRequestErforderlich
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
Future<Object?>
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

completeClientTool

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

completeClientTool
operations.completeClientTool(input: DobroDeskClientToolResult): Future<Object?>

Parameter

inputDobroDeskClientToolResultErforderlich
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
Future<Object?>
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

clientToolStatus

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

clientToolStatus
operations.clientToolStatus(String callId): Future<Object?>

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
Future<Object?>
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

procedureAction

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

procedureAction
operations.procedureAction(input: DobroDeskProcedureAction): Future<Object?>

Parameter

input.actionstart | answer | availability | select | calendar_date | back | confirm | declineErforderlich
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
input.valueStringErforderlich
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
input.idempotencyKeystring (16-128 characters)Erforderlich
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
input.procedureId / runId / expectedUpdatedAtString?
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
input.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.
input.stepId / parameterId / timeZoneString?
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
input.nativeCommerceUitrue?
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
Rückgabewert
Future<Object?>
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected
  • idempotency-conflict

attachmentIntents

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

attachmentIntents
operations.attachmentIntents(String messageId, List<DobroDeskAttachmentDescriptor> attachments): Future<Object?>

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.
attachmentsDobroDeskAttachmentDescriptor[] (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
Future<Object?>
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

uploadAttachment

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

uploadAttachment
operations.uploadAttachment(DobroDeskUploadIntent intent, String fileUri, String mimeType): Future<Object?>

Parameter

intentDobroDeskUploadIntentErforderlich
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
fileUriString (file:// or content:// URI)Erforderlich
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
Future<Object?>
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

listOrders

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

listOrders
operations.listOrders({String? cursor, String? store}): Future<Object?>

Parameter

query{String? cursor, String? store}
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
Rückgabewert
Future<Object?>
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited

orderDetail

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

orderDetail
operations.orderDetail(String orderRef): Future<Object?>

Parameter

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

createCommerceProposal

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

createCommerceProposal
operations.createCommerceProposal({required String storeReference, required String orderReference, required String idempotencyKey}): Future<Object?>

Parameter

storeReferenceStringErforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
orderReferenceStringErforderlich
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
Future<Object?>
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • idempotency-conflict

confirmCommerceProposal

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

confirmCommerceProposal
operations.confirmCommerceProposal(String proposalId, String idempotencyKey): Future<Object?>

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
Future<Object?>
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • not_found
  • idempotency-conflict

commerceProposal

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

commerceProposal
operations.commerceProposal(String proposalId): Future<Object?>

Parameter

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

DobroDeskClientToolRequest

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

DobroDeskClientToolRequest
{ toolName: String; basisMessageId: String; input: Map<String, Object?> }

DobroDeskClientToolResult

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

DobroDeskClientToolResult
{ callId: String; output: Map<String, Object?> }

DobroDeskAttachmentDescriptor

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

DobroDeskAttachmentDescriptor
{ clientId: String; fileName: String; mimeType: String; sizeBytes: int; kind: String (image|video|pdf|text) }

DobroDeskUploadIntent

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

DobroDeskUploadIntent
{ clientId: String; attachmentId: String; uploadUrl: String; uploadToken: String; expiresAt: String }

DobroDeskLoadingState

Der gemeinsame Ladezustand ist idle, starting-session, loading-messages, sending-message, waiting-for-assistant, executing-action, reconnecting oder flushing-outbox.

DobroDeskLoadingState
"idle" | "starting-session" | "loading-messages" | "sending-message" | "waiting-for-assistant" | "executing-action" | "reconnecting" | "flushing-outbox"

DobroDeskEvent

Native und Wrapper-Ereignisse verwenden das gemeinsame Envelope für Laden, Sitzung, Snapshot, akzeptierte Nachricht, Fehler und gelöschte Sitzung.

DobroDeskEvent
loading(state: DobroDeskLoadingState) | session-cleared | session-started | snapshot | message-accepted | error | host-action-requested | host-action-cancelled

dispose

Stoppt die Arbeit optionaler Funktionen und gibt Host-Ressourcen frei.

dispose
dispose(): Future<void>

Widget-Darstellung

WidgetExperience (JSON schema)

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

WidgetExperience (JSON schema)
schemaVersion, locale, appearance, platformOverrides, presentation, reducedMotion, copy
Fehler
  • field-invalid
  • unsupported

DobroDeskWidgetView

Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.

DobroDeskWidgetView
DobroDeskWidgetView({ required DobroDeskFlutterClient client, NativeWidgetOptions options = const NativeWidgetOptions(), bool visible = true, onError?, errorBuilder? })

beginInlineWidget

Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.

beginInlineWidget
beginInlineWidget(NativeWidgetOptions options, String ownerId): Future<void>
Fehler
  • invalid-config
  • request-in-progress
  • field-invalid

mountInlineWidget

Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.

mountInlineWidget
mountInlineWidget(String ownerId): Future<void>
Fehler
  • invalid-config
  • request-in-progress
  • field-invalid

disposeInlineWidget

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

disposeInlineWidget
disposeInlineWidget(String ownerId): Future<void>

NativeOperation (wrapper bridge)

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

NativeOperation (wrapper bridge)
operation: "complete-host-action" | "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"

complete-host-action (local bridge)

Framework-Brücken kodieren den Abschluss einer Host-Aktion über eine lokale native Präsentationsbrücke. Er wird nicht als HTTP-Operation über den direkten nativen Client gesendet.

complete-host-action (local bridge)
{ operation: "complete-host-action"; requestId: string; actionId: string; result: HostActionResult }

Parameter

requestIdstringErforderlich
Freigegebene Anwendungs-Callbacks für geführte Widget-Aktionen. Sie authentifizieren keine Netzwerkanfragen.
actionIdstringErforderlich
Freigegebene Anwendungs-Callbacks für geführte Widget-Aktionen. Sie authentifizieren keine Netzwerkanfragen.
resultHostActionResultErforderlich
Freigegebene Anwendungs-Callbacks für geführte Widget-Aktionen. Sie authentifizieren keine Netzwerkanfragen.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • session-expired
  • unsupported

Optionale Funktionen

attachVoice

Verbindet die separat installierte, vom Host verwaltete Sprachfunktion.

attachVoice
attachVoice(DobroDeskVoicePort port): Future<DobroDeskVoiceFacade>
Fehler
  • unsupported
  • invalid-config

voice

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
voice: DobroDeskVoiceFacade?

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
start(): Future<void>; stop(): Future<void>; setMuted(bool muted): Future<void>; bargeIn(): Future<void>; dispose(): Future<void>
Fehler
  • invalid-configuration
  • permission-denied
  • audio-unavailable
  • session-expired
  • realtime-unavailable
  • invalid-response
  • protocol-violation
  • stale-frame
  • queue-overloaded
  • cancelled
  • unsupported

push module (native only)

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 module (native only)
No JS/Dart wrapper export; use the iOS DobroDeskPush product or Android com.dobrodesk:dobrodesk-push:<version>.

Fehler

DobroDeskException

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

DobroDeskException
DobroDeskException(String code, String message, { int? status, int? retryAfterSeconds, String? fieldId, String? requestId }); code: String
Fehler
  • 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