Zum Hauptinhalt springen
DokumentationNativeScript
Version 0.2.0NativeScript 8.9 bis unter 10

NativeScript SDK: API-Referenz

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

Auf dieser Seite

Konfiguration

DobroDeskSdkConfig

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.

DobroDeskSdkConfig
{ apiOrigin: string; integrationId: string; accountScope: string; locale?: SdkLocale; turnstileToken?: string; pollIntervalMs?: number; fetchImpl?: typeof fetch; credentialProvider: () => Promise<{ authorizationToken: string }>; hostActions?: HostActionHandlers; context?: JsonObject }
Fehler
  • invalid-config

Lebenszyklus und Unterhaltung

DobroDeskNativeScriptClient

Erstellt den Client und prüft die Integrationskonfiguration.

DobroDeskNativeScriptClient
new DobroDeskNativeScriptClient(bridge, config: DobroDeskSdkConfig)

createDobroDeskNativeScriptClient

Erstellt den Client und prüft die Integrationskonfiguration.

createDobroDeskNativeScriptClient
createDobroDeskNativeScriptClient(config: DobroDeskSdkConfig): DobroDeskNativeScriptClient

startSession

Startet eine Unterhaltung mit idempotenter erster Nachricht.

startSession
startSession(message: string, options?: Omit<SessionStartInput, 'message'>): Promise<unknown>
Fehler
  • network
  • field-invalid
  • idempotency-conflict
  • outbox-corrupt

resumeSession

Stellt den Kontostatus oder eine Serversitzung wieder her.

resumeSession
resumeSession(): Promise<unknown>
Fehler
  • network
  • session-expired
  • outbox-corrupt

refresh

Lädt den aktuellen Unterhaltungsverlauf.

refresh
refresh(): Promise<unknown>
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(options?: Omit<WaitForAssistantOptions, 'pollIntervalMs'>): Promise<unknown>
Fehler
  • realtime-unavailable
  • network
  • session-expired

sendMessage

Sendet eine Nachricht und liefert ihren Lieferstatus.

sendMessage
sendMessage(text: string, idempotencyKey?: string): Promise<unknown>
Fehler
  • network
  • idempotency-conflict
  • conversation-stale
  • rate-limited
  • message-rejected

flushOutbox

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

flushOutbox
flushOutbox(): Promise<unknown>
Fehler
  • network
  • outbox-corrupt
  • session-expired

resetSession

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

resetSession
resetSession(): Promise<unknown>
Fehler
  • request-in-progress
  • outbox-corrupt

setAuthorizationToken

Übergibt einem nativen Bridge das aktuelle kurzlebige Token.

setAuthorizationToken
setAuthorizationToken(token: string): Promise<unknown>

logout

Beendet die Kundensitzung und optionale Funktionen.

logout
logout(): Promise<unknown>
Fehler
  • outbox-corrupt

presentWidget

Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.

presentWidget
presentWidget(options?: NativeWidgetOptions): Promise<unknown>

Parameter

localeSdkLocale?
Widget-Locale für Inhalte. Web verwendet standardmäßig auto; native Widget-Bundles unterstützen derzeit en, uk, de und es.
titleString?
Begrenzte Überschreibungen für die gemeinsamen Widget-Texte.
subtitleString?
Begrenzte Überschreibungen für die gemeinsamen Widget-Texte.
appearanceobject?
Das gemeinsame appearance-v2-Objekt mit Farben, Typografie, Layout und Schatten innerhalb der dokumentierten Grenzen.
platformobject?
Plattformspezifische Anpassungen für Safe Area, Tastatur und Navigation innerhalb des gemeinsamen Designvertrags.
reduceMotionboolean?
Standardmäßig folgt die App der Systemeinstellung sowie den nativen Energiespar- und Thermalrichtlinien.
viewhome | messages | help
Optionen für native Navigation sowie die Darstellung des Web-Launchers oder Panels.
articleIdstring?
Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
hostActionIdsstring[]?
Freigegebene Anwendungs-Callbacks für geführte Widget-Aktionen. Sie authentifizieren keine Netzwerkanfragen.
contextJsonObject?
Begrenzter JSON-Kontext für ausdrücklich registrierte Host-Aktionen.
Fehler
  • invalid-config
  • request-in-progress
  • field-invalid

closeWidget

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

closeWidget
closeWidget(): Promise<unknown>

subscribe

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

subscribe
subscribe(listener: (event: SdkEvent) => void): () => void

operations

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

operations
operations: DobroDeskRichOperations

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(requestId: string, values: JsonObject): Promise<JsonValue>

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
Promise<JsonValue>
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: ClientToolRequest): Promise<JsonValue>

Parameter

inputClientToolRequestErforderlich
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
Promise<JsonValue>
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: ClientToolResult): Promise<JsonValue>

Parameter

inputClientToolResultErforderlich
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
Promise<JsonValue>
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(callId: string): Promise<JsonValue>

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
Promise<JsonValue>
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: ProcedureActionInput): Promise<JsonValue>

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
Promise<JsonValue>
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(messageId: string, attachments: readonly AttachmentDescriptor[]): Promise<JsonValue>

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
Promise<JsonValue>
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(intent: AttachmentUploadIntent, fileUri: string, mimeType: string): Promise<JsonValue>

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.
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
Promise<JsonValue>
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(query?: CommerceOrderQuery): Promise<JsonValue>

Parameter

queryCommerceOrderQuery
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
Rückgabewert
Promise<JsonValue>
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(orderRef: string): Promise<JsonValue>

Parameter

orderRefstringErforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
Rückgabewert
Promise<JsonValue>
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(input: CommerceProposalInput, idempotencyKey: string): Promise<JsonValue>

Parameter

inputCommerceProposalInputErforderlich
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
Promise<JsonValue>
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(proposalId: string, idempotencyKey: string): Promise<JsonValue>

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
Promise<JsonValue>
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(proposalId: string): Promise<JsonValue>

Parameter

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

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 }

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: AttachmentKind }

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 }

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 }[] } }

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"

SdkEvent

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

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

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

createWidgetView

Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.

createWidgetView
createWidgetView(options?: NativeScriptWidgetViewOptions): NativeScriptWidgetView
Fehler
  • invalid-config
  • request-in-progress
  • field-invalid

DobroDeskNativeScriptWidgetView

Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.

DobroDeskNativeScriptWidgetView
ContentView; isOpen: boolean; open(): Promise<void>; close(): Promise<void>; release(): Promise<void>

onLoadingChange

Informiert den Host über Lade- und Wiederverbindungsphasen.

onLoadingChange
onLoadingChange(loading: boolean): 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(port: DobroDeskVoicePort): Promise<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 | undefined

createNativeScriptVoicePort

Verbindet die separat installierte, vom Host verwaltete Sprachfunktion.

createNativeScriptVoicePort
createNativeScriptVoicePort(bridge): DobroDeskVoicePort

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(): Promise<void>; stop(): Promise<void>; setMuted(muted: boolean): Promise<void>; bargeIn(): Promise<void>; dispose(): Promise<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

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