Sie können feststellen, ob ein Problem zur Hostkonfiguration, Identität, zum nativen Lebenszyklus oder zu einem behebbaren Netzwerkzustand gehört.
Häufige Integrationsfragen
- Kann das Web-Widget anonym sein? Ja. Webintegrationen können anonym starten und nach der Host-Anmeldung eine kurzlebige signierte Identität anhängen. Native SDK-Integrationen benötigen vor Netzwerkoperationen ein signiertes Kundenidentitätstoken.
- Rendert Mobile das Web-Widget in einer WebView? Nein. iOS, Android, Flutter, React Native, NativeScript und Capacitor präsentieren das gemeinsame native Widget und den nativen Transport. Capacitor kann den übrigen App-UI weiterhin in seiner normalen WebView hosten.
- Welche Untergrenzen werden unterstützt? iOS 15.1, Android API 26, Flutter 3.22.3 oder neuer mit Dart 3.4 bis 3.x, React Native 0.76 bis 0.87 mit New Architecture, NativeScript 8.9 bis 9.x und Capacitor 6 bis 8.
- Kann ich mehrere aktive Unterhaltungen in einem Client halten? Nein. Ein accountScope besitzt eine aktive native Sitzung und eine dauerhafte Outbox. Beenden oder setzen Sie die aktuelle Sitzung zurück, bevor Sie eine weitere starten, und rufen Sie logout vor dem Identitätswechsel auf.
- Streamt das öffentliche SDK KI-Tokens? Nein. Die öffentliche API gibt typisierte Snapshots und wait-for-assistant-Ergebnisse zurück. Bauen Sie keine Token-für-Token-Oberfläche aus Polling-Ereignissen.
- Sind Push und Voice im Basispaket enthalten? Nein. Es sind optionale native Funktionen mit eigener Providerkonfiguration und Berechtigungen.
Fehler der nächsten sicheren Aktion zuordnen
Lesen Sie den typisierten Fehlercode und bewahren Sie die Request-Identität. network, reconnecting und rate-limited können nach den SDK-Regeln wiederholt werden. session-expired braucht ein frisches Token für dasselbe Konto. field-invalid, payload-too-large und message-rejected brauchen eine Korrektur durch Host oder Kunden. idempotency-conflict bedeutet, dass der Host den ursprünglichen Schlüssel untersuchen muss, statt eine neue Nachricht zu senden.
import { DobroDeskSdkError } from "@dobrodesk/mobile-protocol";
try {
await client.sendMessage(text, idempotencyKey);
} catch (error) {
// These host functions render controls; they do not retry inside catch.
if (!(error instanceof DobroDeskSdkError)) {
showRecoverableSdkError(error);
return;
}
switch (error.details.code) {
case "network":
case "rate-limited":
showRetryControl();
break;
case "session-expired":
showRefreshAndRetryControlForTheSameAccount();
break;
case "field-invalid":
case "payload-too-large":
case "message-rejected":
showCorrection(error.details);
break;
case "idempotency-conflict":
investigateOriginalRequest(error.details);
break;
default:
showRecoverableSdkError(error);
}
}Host vor einer Supportanfrage prüfen
- Bestätigen Sie, dass apiOrigin ein HTTPS-Origin ohne Pfad, Query oder Zugangsdaten ist und integrationId auf die gewünschte DobroDesk-Integration zeigt.
- Bestätigen Sie, dass das signierte Token vom Host-Backend für den aktuellen Kunden ausgestellt wurde und accountScope für diesen Kunden stabil und exklusiv ist.
- Bestätigen Sie, dass der native Presenter von einem sichtbaren Bildschirm aufgerufen wird und der Host keinen zweiten Client für dasselbe Konto eingebunden hat.
- Bestätigen Sie, dass eine Wiederholung den ursprünglichen Idempotency Key verwendet und logout oder reset nicht aufgerufen wurde, während die Operation nur offline war.