Offline Files‑Schnittstelle.
Offline Files‑Schnittstelle.
← Alle nativen Anleitungen

Xodera Plugins · Bubble Native

Xodera Offline Files Native

Bewahren Sie Berichtanhänge und ausgewählte Dateien auf dem Gerät, stellen Sie sie später wieder her und ermöglichen Sie dem Benutzer, eine ausgewählte Kopie zu teilen.

Public beta guides · Haptics instructions are in its Bubble listing

Public beta offer: free Bubble install · 7-day card trial, then US$1.50/month per plugin/project.

Dokumentation geprüft 6 November 2026

Praktische Beispiele

Stelle mehrere lokale Anhänge bereit, bevor du einen Bericht einreichst

Ein Formular muss anzeigen, welche Dateien ausgewählt wurden, und dem Benutzer ermöglichen, eine verwaltete Kopie zu behalten, bevor eine Cloud‑Übertragung erfolgt.

`accepted_mime_types_json = your allowed MIME list`; `multiple = yes`; setze `max_files`, `max_file_bytes` und einen Konto-/Bericht `document_context`.

Pick files → prüfe die ausgewählten Namen/Größen → Save selection locally. Ihr Formular behält die resultierenden Datei‑IDs, bis der separate Submit‑Workflow die genehmigten Dateien hochlädt.

Verwenden Sie `selection_count`, `file_names`, `file_sizes` und `saved_file_ids`, um die Überprüfungsliste darzustellen. Eine gespeicherte verwaltete Kopie bewahrt das Original des Aufrufenden.

Ein abgebrochener Picker ist kein übermittelter Bericht. Auf `files_error` behalten Sie bereits akzeptierte lokale IDs und zeigen `error_code`; erstellen Sie niemals einen Cloud‑Anhang nur aus einer lokalen URI.

Dateien bleiben auf diesem Gerät, bis sie separat geteilt oder hochgeladen werden.

Behalten Sie die Ausgabe eines Foto‑Editors oder Recorders für spätere Verwendung.

Eine erzeugte lokale Datei kann sich in einem temporären Speicherort befinden; die App benötigt eine explizite verwaltete Kopie.

`source_uri = the local output of a separately accepted editor/recorder`; binden Sie sein echtes `display_name` und `mime_type`; verwenden Sie das `document_context` desselben Besitzers.

Load local source → prüfe Metadaten → Save selection locally. Speichern Sie die zurückgegebene Datei‑ID nur im passenden Gerät/Kontext und führen Sie dann Restore saved file mit dieser genauen ID aus, wenn nötig.

Verwenden Sie `file_id`, `local_uri`, `size_bytes` und `is_saved_locally`; nutzen Sie `file_restored`, um eine abgeschlossene Wiederherstellung von einer bloßen Anforderung zu unterscheiden.

Lehnen Sie eine entfernte HTTP‑URL als lokale Quelle ab. Wenn eine Quelle verschwindet oder die Wiederherstellung fehlschlägt, zeigen Sie `error_code` an und bewahren den ursprünglichen App‑Eintrag zur Wiederherstellung auf.

Dateien bleiben auf diesem Gerät, bis sie separat geteilt oder hochgeladen werden.

Ermöglichen Sie einem Benutzer, einen von der App erzeugten lokalen Beleg oder Export zu teilen.

Die App sollte eine ausgewählte lokale Datei dem Geräteshare‑Sheet übergeben, anstatt eine öffentliche URL zu erfinden.

`selected_file_id = the exact managed copy chosen from your app’s saved-file list`; sein Name und MIME beschreiben die echte lokale Datei.

List saved files → Restore saved file → Share selected file, nachdem der Benutzer auf Teilen tippt. Bewahren Sie die gespeicherte Kopie auf, bis er ausdrücklich Delete saved copy wählt.

Verwenden Sie `share_status` und `share_sheet_closed`, um die UI zu aktualisieren, nachdem das Sheet geschlossen wurde. Behalten Sie die Datei‑ID für ein weiteres gezieltes Teilen bei.

Ein geschlossenes Share‑Sheet beweist nicht, dass eine E‑Mail/Nachricht zugestellt wurde. Behandeln Sie Abbruch und `files_error`, ohne dem Empfänger einen Erfolg zu melden.

Dateien bleiben auf diesem Gerät, bis sie separat geteilt oder hochgeladen werden.

Was jetzt funktioniert

Public beta. Use the documented controls and actions; test supported formats, permissions and device behavior in your own native app. Browser preview does not validate native device output.

Workflow erstellen

Verwenden Sie die unten verfügbaren Beta‑Aktionen und testen Sie das Ergebnis auf Ihren Zielgeräten.

Diese Beispiele verwenden App‑Datensätze wie Lesson, Message und Order. Ersetzen Sie sie durch Ihre eigenen Datentypen und Elementnamen. Beispiel‑Medienadressen müssen durch Ihre eigenen Dateien ersetzt werden.

  1. Setzen Sie document_context = Current User's unique id oder einen stabilen Wert für das Konto und den Bericht. Wählen Sie accepted_mime_types_json, max_files und max_file_bytes.

  2. Führen Sie Pick files aus oder verwenden Sie Load local source für eine lesbare Datei, die vom Foto‑Editor oder Recorder erzeugt wurde. Nach selection_changed lesen Sie die passenden Dateilisten; Select picked file wählt einen Index.

  3. Führen Sie Save selection locally aus. Nach files_saved behalten Sie saved_file_ids im lokalen Anhangs‑Datensatz Ihrer App. List saved files zeigt gespeicherte Kopien; Restore saved file öffnet die ausgewählte gespeicherte ID.

  4. Share selected file öffnet das System‑Freigabemenü. share_sheet_closed bedeutet lediglich, dass das Menü geschlossen wurde. Delete saved copy benötigt die ausgewählte ID und confirm=yes.

Workflow‑Diagramm — kein App‑Screenshot

Einmal konfigurieren

Erstellen oder wählen Sie Ihr Bubble‑App‑Projekt in BestPlugins → Dashboard → Plugins. Wählen Sie Xodera Offline Files Native, kopieren Sie dessen Schlüssel und öffnen Sie anschließend Bubble → Plugins → Xodera Offline Files Native, um ihn in licensing_api_key einzufügen. Speichern Sie einmal; verwenden Sie dann die untenstehenden Aktionen. Jeder Plugin in jedem Projekt hat einen eigenen Schlüssel.

Verwenden Sie eine native App mit Zugriff auf die ausgewählten Dateien. Legen Sie ein stabiles document_context für das Konto oder den Bericht fest, damit die gespeicherten Dateien korrekt gruppiert bleiben.

Einmal konfigurieren
  1. Erstellen oder wählen Sie Ihr Bubble‑App‑Projekt bei BestPlugins → Dashboard → Plugins.
  2. Wählen Sie dieses Plugin aus und kopieren Sie dessen Projektschlüssel.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Fügen Sie das Element hinzu, wählen Sie Ihre App‑Daten und erstellen Sie den untenstehenden Workflow.
  5. In the dashboard, review and confirm the 7-day card trial for this plugin. It then costs US$1.50/month per app project, including development and production. Cancel before the trial ends to avoid the first charge.
Installation und Abonnement

For Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit and Haptics: free Bubble installation, a 7-day trial with a card, then US$1.50 per month per plugin and app project. Development and production are included, with no operation cap. File-size and feature limits still apply. Review billing and cancellation before confirming. Other plugins remain unavailable for purchase.

Speichern Sie das Ergebnis in Ihrer App

Beispiel LocalAttachment: Eigentümer, document_context, gespeicherte Datei‑ID, display_name, mime_type und size_bytes. Diese ID funktioniert nur auf demselben Gerät und für dasselbe Konto oder denselben Bericht. Für einen Online‑Anhang laden Sie die Datei mit einem separaten Workflow hoch und speichern die zurückgegebene Online‑Dateireferenz.

Fehler, Abbruch und Wiederherstellung

Ein abgebrochener Picker gibt operation_cancelled zurück; er sendet das Formular nicht ab. Während native_pending=yes, warten Sie, bis der Dateiauswahl- oder Freigabemenü geschlossen ist, bevor Sie einen weiteren öffnen. Clear session löscht die aktuelle Auswahl, behält jedoch gespeicherte Kopien. Wenn eine Datei fehlt, lassen Sie den Benutzer sie erneut auswählen.

Funktionen und Grenzen

Wählen Sie 1–20 Dateien gleichzeitig aus. Pro‑Datei‑Limit: 1 Byte–256 MiB, bei Bedarf mit niedrigerem Limit. Dateityp‑Filter prüfen Dateien nicht auf Viren. Geräte‑Datei‑IDs und Pfade funktionieren nicht als Cloud‑Download‑Links. Lokale Kopien sind kein verschlüsselter Speicher und können verloren gehen, wenn App‑Daten entfernt werden.

Einstellungen, Aktionen und Ergebnisse

Verwenden Sie diese Namen in Bubble. Geplante Funktionen sind separat gekennzeichnet.

Verfügbare Beta‑Einstellungen

Elementeinstellungen

source_uri · textdisplay_name · textmime_type · textdocument_context · textselected_file_id · textaccepted_mime_types_json · textmultiple · yes_nocopy_to_cache · yes_nomax_files · numbermax_file_bytes · numberis_active · yes_nodisabled · yes_noshow_controls · yes_nolanguage · textui_text_json · texttitle · text

Zustände

status · textis_busy · yes_nonative_pending · yes_nooperation · textselection_count · numberselected_index · numberfile_id · textlocal_uri · textdisplay_name · textmime_type · textmime_source · textsize_bytes · numberis_saved_locally · yes_nofile_ids · text (Liste)file_uris · text (Liste)file_names · text (Liste)file_mime_types · text (Liste)file_sizes · number (Liste)files_json · textsaved_count · numbersaved_file_ids · text (Liste)saved_file_uris · text (Liste)saved_file_names · text (Liste)saved_file_mime_types · text (Liste)saved_file_sizes · number (Liste)saved_files_json · textinvalid_saved_count · numbershare_status · texterror_code · text

Ereignisse

selection_changedfiles_savedlist_loadedfile_restoredfile_deletedshare_sheet_closedoperation_cancelledfiles_error

Aktionen und deren Eingaben

Pick filesLoad local sourceSelect picked fileSave selection locallyList saved filesRestore saved fileDelete saved copyShare selected fileCancel operationClear session
Elementeinstellungen · 16
source_uritext · Standard: ""
Beispielwertfile:///app-cache/report.pdf
Beispiel Bubble AusdruckPhoto Editor's output_uri
Lesbare Dateiposition auf diesem Gerät, zurückgegeben von Ihrem Picker oder einem anderen Plugin.
display_nametext · Standard: ""
Beispielwertreport-photo.jpg
Beispiel Bubble AusdruckSelected Attachment's display_name
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
mime_typetext · Standard: ""
Beispielwertimage/jpeg
Beispiel Bubble AusdruckPhoto Editor's output_mime
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
document_contexttext · Standard: "default"
Beispielwert<current-user-id>
Beispiel Bubble AusdruckCurrent User's unique id
Stabiler Wert für dieses Konto oder diesen Datensatz. Verwenden Sie denselben Wert beim Wiederherstellen seiner gespeicherten Dateien oder Entwürfe.
selected_file_idtext · Standard: ""
Beispielwert<returned saved file ID>
Beispiel Bubble AusdruckSelected LocalAttachment's local_file_id
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
accepted_mime_types_jsontext · Standard: "[\"*/*\"]"
Beispielwert["image/*","application/pdf"]
Beispiel Bubble AusdruckReport Settings' accepted_mime_types_json
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
multipleyes_no · Standard: false
Beispielwertyes
Beispiel Bubble AusdruckReport Settings' allow_multiple_attachments
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
copy_to_cacheyes_no · Standard: true
Beispielwertyes
Beispiel Bubble AusdruckReport Settings' copy_to_cache
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
max_filesnumber · Standard: 20
Beispielwert5
Beispiel Bubble AusdruckReport Settings' attachment_limit
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
max_file_bytesnumber · Standard: 268435456
Beispielwert10485760
Beispiel Bubble AusdruckReport Settings' max_attachment_bytes
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
is_activeyes_no · Standard: true
Beispielwertyes
Beispiel Bubble AusdruckGuideHost's view_is_active (your yes/no custom state)
Setzen Sie ja, solange diese Ansicht geöffnet ist. Setzen Sie nein beim Verlassen, damit die Wiedergabe oder die aktuelle Arbeit gestoppt werden kann.
disabledyes_no · Standard: false
Beispielwertno
Beispiel Bubble AusdruckGuideHost's is_busy (your yes/no custom state)
Deaktivieren Sie das Element, solange Ihre App beschäftigt ist oder diese Aktion nicht verfügbar ist.
show_controlsyes_no · Standard: true
Beispielwertyes
Beispiel Bubble AusdruckApp Settings' show_editor_controls
Ein- oder Ausblenden der integrierten Steuerelemente.
languagetext · Standard: "auto"
Beispielwertuk
Beispiel Bubble AusdruckCurrent User's preferred_language
Setzen Sie language=auto, um einer unterstützten Geräte‑ oder Browsersprache zu folgen. Geben Sie einen unterstützten Sprachcode ein, um ihn ausdrücklich auszuwählen.
ui_text_jsontext · Standard: ""
Beispielwert{}
Beispiel Bubble AusdruckApp Settings' player_labels_json (supported keys only)
Optionales JSON mit unterstützten Schaltflächenbeschriftungen. Leer lassen, um den integrierten Text zu verwenden.
titletext · Standard: ""
BeispielwertLesson 4 — review
Beispiel Bubble AusdruckSelected Lesson's name
Sichtbarer App-Text; leer verwendet die integrierte lokalisierte Kopie, wo unterstützt. Keine Anmeldedaten.
Aktionen und deren Eingaben · 10
Pick files

Keine Aktionsparameter

Load local source
source_uritext · Standard: —
Beispielwertfile:///app-cache/report.pdf
Beispiel Bubble AusdruckPhoto Editor's output_uri
Lesbare Dateiposition auf diesem Gerät, zurückgegeben von Ihrem Picker oder einem anderen Plugin.
display_nametext · Standard: —
Beispielwertreport-photo.jpg
Beispiel Bubble AusdruckSelected Attachment's display_name
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
mime_typetext · Standard: —
Beispielwertimage/jpeg
Beispiel Bubble AusdruckPhoto Editor's output_mime
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Select picked file
indexnumber · Standard: —
Beispielwert0
Beispiel Bubble AusdruckSelected row's current_source_index
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Save selection locally

Keine Aktionsparameter

List saved files

Keine Aktionsparameter

Restore saved file
file_idtext · Standard: —
Beispielwert<returned saved file ID>
Beispiel Bubble AusdruckSelected LocalAttachment's local_file_id
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Delete saved copy
file_idtext · Standard: —
Beispielwert<returned saved file ID>
Beispiel Bubble AusdruckSelected LocalAttachment's local_file_id
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
confirmyes_no · Standard: —
Beispielwertyes — explicit confirmation only
Beispiel Bubble AusdruckConfirm Checkbox is checked
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Share selected file
dialog_titletext · Standard: —
BeispielwertShare attachment
Beispiel Bubble AusdruckSelected Report's share_title
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
utitext · Standard: —
Beispielwert""
Beispiel Bubble AusdruckEmpty unless your iOS integration supplies a proven UTI
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Cancel operation

Keine Aktionsparameter

Clear session

Keine Aktionsparameter

Zustände und Ereignisse

Zustände

status · text

Aktuelles Ergebnis dieser Aktion. Verwenden Sie das passende Abschlussereignis, bevor Sie den Erfolg speichern.

is_busy · yes_no

Die Arbeit ist noch im Gange. Bitte warten Sie, bevor Sie eine weitere Aktion starten.

native_pending · yes_no

Die Arbeit ist noch im Gange. Bitte warten Sie, bevor Sie eine weitere Aktion starten.

operation · text

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

selection_count · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

selected_index · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

file_id · text

Kennzeichen für dieses Element oder diese Aktion. Bewahren Sie es zusammen mit dem zugehörigen App‑Datensatz auf. Verwenden Sie dieselbe Anforderungs‑Kennung, wenn Sie ein unsicheres Ergebnis erneut versuchen.

local_uri · text

Dateistandort auf diesem Gerät. Speichern oder laden Sie die Datei separat hoch, wenn sie online behalten werden muss.

display_name · text

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

mime_type · text

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

mime_source · text

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

size_bytes · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

is_saved_locally · yes_no

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

file_ids · text (Liste)

Eine Liste für die ausgewählten Dateien. Elemente mit demselben Index in den anderen Dateilisten beziehen sich auf dieselbe Datei.

file_uris · text (Liste)

Eine Liste für die ausgewählten Dateien. Elemente mit demselben Index in den anderen Dateilisten beziehen sich auf dieselbe Datei.

file_names · text (Liste)

Eine Liste für die ausgewählten Dateien. Elemente mit demselben Index in den anderen Dateilisten beziehen sich auf dieselbe Datei.

file_mime_types · text (Liste)

Eine Liste für die ausgewählten Dateien. Elemente mit demselben Index in den anderen Dateilisten beziehen sich auf dieselbe Datei.

file_sizes · number (Liste)

Eine Liste für die ausgewählten Dateien. Elemente mit demselben Index in den anderen Dateilisten beziehen sich auf dieselbe Datei.

files_json · text

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

saved_count · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

saved_file_ids · text (Liste)

Eine Liste für die ausgewählten Dateien. Elemente mit demselben Index in den anderen Dateilisten beziehen sich auf dieselbe Datei.

saved_file_uris · text (Liste)

Eine Liste für die ausgewählten Dateien. Elemente mit demselben Index in den anderen Dateilisten beziehen sich auf dieselbe Datei.

saved_file_names · text (Liste)

Eine Liste für die ausgewählten Dateien. Elemente mit demselben Index in den anderen Dateilisten beziehen sich auf dieselbe Datei.

saved_file_mime_types · text (Liste)

Eine Liste für die ausgewählten Dateien. Elemente mit demselben Index in den anderen Dateilisten beziehen sich auf dieselbe Datei.

saved_file_sizes · number (Liste)

Eine Liste für die ausgewählten Dateien. Elemente mit demselben Index in den anderen Dateilisten beziehen sich auf dieselbe Datei.

saved_files_json · text

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

invalid_saved_count · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

share_status · text

Aktuelles Ergebnis dieser Aktion. Verwenden Sie das passende Abschlussereignis, bevor Sie den Erfolg speichern.

error_code · text

Fehlermeldung für die letzte Aktion. Zeigen Sie eine hilfreiche Nachricht an und bieten Sie den entsprechenden Wiederholungsversuch an.

Ereignisse

selection_changed

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

files_saved

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

list_loaded

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

file_restored

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

file_deleted

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

share_sheet_closed

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

operation_cancelled

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

files_error

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

Fragen, die Entwickler stellen

Bedeutet „Teilen“ „gesendet“?

Nein. Das Betriebssystem liefert hier keinen zuverlässigen Empfänger‑Erfolgsnachweis. Zeige „share sheet closed“.

Wie funktioniert das Abonnement?

For Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit and Haptics: free Bubble installation, a 7-day trial with a card, then US$1.50 per month per plugin and app project. Development and production are included, with no operation cap. File-size and feature limits still apply. Review billing and cancellation before confirming. Other plugins remain unavailable for purchase.

Verwandte Anleitungen

Für Hilfe geben Sie an, welches Plugin und Gerät Sie verwenden, welche Aktion Sie versucht haben und was passiert ist. Verwenden Sie ein Beispiel ohne persönliche Daten. Teilen Sie niemals Ihren Schlüssel oder private Dateien.