Weiter zum Inhalt
Konto erstellen oder anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellenAnmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
APIs und SDKsHilfe
Übersicht
Versionierung
Änderungsprotokoll
Aktualisieren Sie Ihre API-Version
Ihre SDK-Version aktualisieren
Essentials
SDKs
API
Tests
Stripe-CLI
Beispiel-Projekte
Tools
Stripe Dashboard
Workbench
Entwickler-Dashboard
Stripe Shell
Stripe für Visual Studio Code
Funktionen
Arbeitsabläufe
Ereignisziele
Stripe-StatuswarnungenHochgeladene Dateien
KI-Lösungen
Agent-Toolkit
Model Context ProtocolAgentische KI-SaaS-Billing-Workflows aufbauen
Sicherheit und Datenschutz
Sicherheit
Stripebot-Webcrawler
Datenschutz
Stripe erweitern
Erstellen Sie Stripe-Apps
    Übersicht
    Jetzt starten
    Eine App erstellen
    Funktionsweise von Stripe-Apps
    Beispiel-Apps
    App erstellen
    Shop-Geheimnisse
    API-Authentifizierungsmethoden
    Autorisierungsabläufe
    Serverseitige Logik
    Ereignisse überwachen
    Umgang mit verschiedenen Modi
    Sandbox-Unterstützung aktivieren
    Lokalen Netzwerkzugriff aktivieren
    App-Einstellungsseite
    Erstellen Sie eine Nutzeroberfläche
    Onboarding
    Ihre App verbreiten
    Vertriebsmöglichkeiten
    App hochladen
    Versionen und Releases
    Ihre App testen
    Ihre App veröffentlichen
    Ihre App bewerben
    Deep-Links hinzufügen
    Installationslinks erstellen
    Rollen in Erweiterungen der Nutzeroberfläche zuweisen
    Aktionen nach der Installation
    App-Analytik
    Eingebettete Komponenten
    Stripe-Apps von Drittanbietern einbetten
    Umstellung auf Stripe Apps
    Migrieren oder Erweiterung erstellen
    Ein Plugin zu Stripe Apps oder Stripe Connect migrieren
    Verwendungszweck
    App-Manifest
    CLI
    Erweiterungs-SDK
    Berechtigungen
    Darstellungsfelder
    Entwurfsmuster
    Komponenten
      Accordion
      Badge
      Banner
      Balkendiagramm
      Textfeld
      Schaltfläche
      ButtonGroup
      Kontrollkästchen
      Chip
      ContextView
      DateField
      DetailPageModule
      DetailPagePropertyList
      DetailPageTable
      Trennzeichen
      FocusView
      FormFieldGroup
      Symbol
      Img
      Inline
      Liniendiagramm
      Link
      Liste
      Menü
      OnboardingView
      PropertyList
      Radio
      Auswählen
      SettingsView
      SignInView
      Sparkline
      Sanduhr
      Wechseln
      Tisch
      Registerkarten
      TaskList
      TextArea
      TextField
      Toast
      QuickInfo
Verwenden Sie Apps von Stripe
Partner
Partner-Ecosystem
Partner-Zertifizierung
Vereinigte Staaten
Deutsch
StartseiteEntwicklerressourcenBuild Stripe appsComponents

OnboardingView-Komponente für Stripe AppsÖffentliche Vorschau

Verwenden Sie OnboardingView, um einen Onboarding-Ablauf Ihrer Stripe-App zu implementieren

So fügen Sie Ihrer App die OnboardingView Komponente hinzu:

import {OnboardingView} from '@stripe/ui-extension-sdk/ui';

Die Komponente OnboardingView bietet eine standardisierte Möglichkeit, eine Onboarding-Ansicht mit vordefinierter Struktur zu implementieren:

  • Linke Seitenleiste, die eine Liste der Onboarding-Aufgaben anzeigt
  • Hauptinhaltsbereich, der den Inhalt eines bestimmten Onboarding-Schritts anzeigt

Die Liste der Onboarding-Aufgaben wird als Array von TaskListItemProps-Elementen angegeben. Sie können den Inhalt des Onboarding-Schritts selbst vollständig anpassen, indem Sie eine nutzerdefinierte React-Ansicht als direktes untergeordnetes Element der <OnboardingView> angeben. Mit diesem Ansatz können Sie einen nutzerdefinierten Onboarding-Schritt basierend auf Ihren Geschäftsanforderungen implementieren, während das Stripe-Dashboard die Art und Weise steuert, wie die Liste der Onboarding-Aufgaben gerendert wird.

OnboardingView-Eigenschaften

EigenschaftTyp

children

Pflichtfeld

React.ReactNode

React-Komponente, die den Inhalt der primären Spalte rendert.

completed

Pflichtfeld

boolean

Ob alle Onboarding-Aufgaben erledigt sind. Wenn auf „true“ gesetzt, wird das Onboarding-Modalfenster nach kurzer Verzögerung automatisch geschlossen, um die Nutzerin bzw. den Nutzer an den vorherigen Ort zurückzuleiten.

tasks

Pflichtfeld

Array<Tasks>

Eine Liste der Onboarding-Aufgaben.

Verwandte Typen: Tasks.

title

Pflichtfeld

string

Titel des Onboarding-Schritts.

description

Optional

string | undefined

Beschreibung der Onboarding-Schritte.

error

Optional

React.ReactNode

Informationen über einen Fehler, der während des Onboarding eingetreten ist.

pending

Optional

boolean | undefined

Ob sich der Onboarding-Ablauf in einem Ladezustand befindet. Zeigt bei true einen Kreisel und eine Lademeldung an.

Aufgaben

EigenschaftTyp

title

Pflichtfeld

string

Der Anzeigetitel der Aufgabe.

onPress

Optional

((event: PressEvent) => void) | undefined

Ein Ereignishandler, wenn der/die Nutzer/in auf eine beliebige Stelle in der Aufgabe klickt.

status

Optional

("not-started" | "in-progress" | "blocked" | "complete") | undefined

Der aktuelle Status der Aufgabe.

subTasks

Optional

Array<SubTasks> | undefined

Eine Liste der Unteraufgaben, die zu dieser Aufgabe gehören.

Verwandte Typen: SubTasks.

SubTasks

EigenschaftTyp

title

Pflichtfeld

string

Der Anzeigetitel der Aufgabe.

onPress

Optional

((event: PressEvent) => void) | undefined

Ein Ereignishandler, wenn der/die Nutzer/in auf eine beliebige Stelle in der Aufgabe klickt.

status

Optional

("not-started" | "in-progress" | "blocked" | "complete") | undefined

Der aktuelle Status der Aufgabe.

Basic

Das folgende Beispiel zeigt die grundlegende Verwendung der Komponente OnboardingView, bei der für jeden Onboarding-Schritt eine andere React-Ansicht gerendert wird.

Beispiel wird geladen ...
import React, {useState, useReducer, useCallback} from 'react'; import { FormFieldGroup, TextField, OnboardingView, Switch, TaskListItemProps, } from '@stripe/ui-extension-sdk/ui'; const onboardingTasks: Record<TaskName, TaskListItemProps> = { addInfo: { title: 'Add business info', status: 'in-progress', onPress: () => handlePress('addInfo'), }, connectBank: { title: 'Connect your bank', status: 'not-started', onPress: () => handlePress('connectBank'), }, review: { title: 'Review and finish', status: 'not-started', onPress: () => handlePress('review'), }, }; // These view implement the UI required by a particular onboarding step const steps: Record<TaskName, React.FunctionComponent> = { addInfo: () => ( <FormFieldGroup legend="Business Info" description="Add business info"> <TextField label="Company name" placeholder="Company name" hiddenElements={['label']} /> </FormFieldGroup> ), connectBank: () => ( <FormFieldGroup legend="Connect your bank" description="Enter the bank account to which withdrawals will be sent." > <TextField label="Bank name" placeholder="Bank name" hiddenElements={['label']} /> </FormFieldGroup> ), review: () => ( <FormFieldGroup legend="Specify settings" layout="vertical"> <Switch label="Enable automatic transfers" description="Enable automatic transfers" /> <Switch label="Enable auto-import of transactions" description="Enable auto-import of transactions" /> </FormFieldGroup> ), }; const handlePress = useCallback((taskName: TaskName) => { setTaskName(taskName); dispatch({type: 'TOGGLE_STATUS', taskName}); }, []); const [taskName, setTaskName] = useState<TaskName>('addInfo'); const [tasks, dispatch] = useReducer(taskReducer, onboardingTasks); const taskListItems = Object.values(tasks); const title = tasks[taskName].title; const description = `Please complete the onboarding step.`; const completed = taskListItems.every((item) => item.status === 'complete'); const OnboardingViewContent = steps[taskName]; return ( <OnboardingView title={title} description={description} completed={completed} tasks={taskListItems} > <OnboardingViewContent /> </OnboardingView> ); function getNextStatus( status: string, ): 'not-started' | 'in-progress' | 'complete' { switch (status) { case 'complete': return 'not-started'; case 'not-started': return 'in-progress'; case 'in-progress': return 'complete'; default: return 'not-started'; } } type TaskName = 'addInfo' | 'connectBank' | 'review'; type TaskAction = { type: 'TOGGLE_STATUS'; taskName: TaskName; }; // Reducer function to handle state updates function taskReducer( state: Record<TaskName, TaskListItemProps>, action: TaskAction, ): Record<TaskName, TaskListItemProps> { switch (action.type) { case 'TOGGLE_STATUS': return { ...state, [action.taskName]: { ...state[action.taskName], status: getNextStatus(state[action.taskName].status as string), }, }; default: return state; } }

Übergangsphase

Dieses Beispiel zeigt, wie Sie die Optionen error und pending verwenden, um verschiedene Zustände während des Onboarding-Ablaufs zu behandeln.

Die Komponente verwaltet drei verschiedene Zustände:

  • Ausstehend: Zeigt einen Ladekreiselan, während die Daten zum Onboarding eingelesen werden
  • Fehler: Zeigt eine Schaltfläche Wiederholen an, wenn der Abruf fehlschlägt
  • Bereit: Stellt das normale Onboarding-Erlebnis mit Aufgaben und Formularen dar

Wenn die Beispielkomponente zum ersten Mal geladen wird, simuliert sie einen fehlgeschlagenen Abruf, um den Fehlerzustand zu demonstrieren. Wenn Sie auf Nochmal versuchen klicken, ist der Abruf erfolgreich und der eigentliche Onboarding-Inhalt wird angezeigt. Mit diesem Ansatz können Sie Lade- und Fehlerszenarien reibungslos handhaben, ohne zusätzliche Komponenten oder eine komplexe Zustandsverwaltung zu benötigen.

Beispiel wird geladen ...
import React, {useCallback, useEffect, useState} from 'react'; import { FormFieldGroup, TextField, Button, OnboardingView, TaskListItemProps, } from '@stripe/ui-extension-sdk/ui'; type OnboardingData = { state: 'pending' | 'error' | 'ready'; tasks: TaskListItemProps[]; }; const [onboarding, setOnboarding] = useState<OnboardingData>({ state: 'pending', tasks: [], }); const fetchTasks = useCallback( (() => { let isFirstTry = true; return () => { setOnboarding({state: 'pending', tasks: []}); setTimeout(() => { if (isFirstTry) { isFirstTry = false; setOnboarding((prev) => ({...prev, state: 'error'})); } else { setOnboarding({ state: 'ready', tasks: [ {title: 'Add business info', status: 'in-progress'}, {title: 'Connect your bank', status: 'not-started'}, {title: 'Review and finish', status: 'not-started'}, ], }); } }, 2000); }; })(), [], ); useEffect(fetchTasks, [fetchTasks]); const error = onboarding.state === 'error' ? ( <Button onPress={fetchTasks}>Try again!</Button> ) : null; const pending = onboarding.state === 'pending'; return ( <OnboardingView error={error} pending={pending} title="Onboarding title" description="Onboarding description" completed={false} tasks={onboarding.tasks} > <FormFieldGroup legend="Business Info" description="Add business info!"> <TextField label="Company name" placeholder="Company name" hiddenElements={['label']} /> </FormFieldGroup> </OnboardingView> )

Siehe auch

  • Entwurfsmuster als Orientierung
  • App gestalten
  • Test der Nutzeroberfläche
War diese Seite hilfreich?
JaNein
  • Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
  • Schauen Sie sich unser Änderungsprotokoll an.
  • Fragen? Sales-Team kontaktieren.
  • LLM? Lesen Sie llms.txt.
  • Unterstützt von Markdoc