Offline Files-interface.
Offline Files-interface.
← Alle native gidsen

Xodera Plugins · Bubble Native

Xodera Offline Files Native

Bewaar rapportbijlagen en gekozen bestanden op het apparaat, herstel ze later en laat de gebruiker een geselecteerde kopie delen.

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.

Documentatie beoordeeld 6 november 2026

Praktische voorbeelden

Bereid meerdere lokale bijlagen voor voordat u een rapport indient

Een formulier moet tonen welke bestanden zijn gekozen en de gebruiker een beheerde kopie laten behouden vóór enige cloud‑indiening.

`accepted_mime_types_json = your allowed MIME list`; `multiple = yes`; stel `max_files`, `max_file_bytes` en een account/rapport `document_context` in.

Pick files → inspecteer de geselecteerde namen/groottes → Save selection locally. Uw formulier houdt de resulterende bestand‑ID’s vast tot de aparte Submit‑workflow de goedgekeurde bestanden uploadt.

Gebruik `selection_count`, `file_names`, `file_sizes` en `saved_file_ids` om de beoordelingslijst te renderen. Een opgeslagen beheerde kopie behoudt het origineel van de aanroeper.

Een geannuleerde picker is geen ingediend rapport. Op `files_error`, bewaar reeds geaccepteerde lokale ID’s en toon `error_code`; maak nooit een cloud‑bijlage aan alleen van een lokale URI.

Bestanden blijven op dit apparaat totdat ze gedeeld of apart geüpload worden.

Bewaar een foto-editor of recorder-uitvoer voor later gebruik

Een gegenereerd lokaal bestand kan zich in een tijdelijke locatie bevinden; de app heeft een expliciete beheerde kopie nodig.

`source_uri = the local output of a separately accepted editor/recorder`; koppel de echte `display_name` en `mime_type`; gebruik de `document_context` van dezelfde eigenaar.

Load local source → inspecteer metadata → Save selection locally. Sla de geretourneerde bestands-ID alleen op in het overeenkomende apparaat/context, en gebruik vervolgens Restore saved file met die exacte ID wanneer nodig.

Consumeer `file_id`, `local_uri`, `size_bytes` en `is_saved_locally`; gebruik `file_restored` om een voltooide herstelactie te onderscheiden van alleen een verzoek.

Weiger een externe HTTP-URL als lokale bron. Als een bron verdwenen is of herstel mislukt, toon `error_code` en bewaar het oorspronkelijke app‑record voor herstel.

Bestanden blijven op dit apparaat totdat ze gedeeld of apart geüpload worden.

Laat een gebruiker een door de app gegenereerde lokale bon of export delen

De app moet een geselecteerd lokaal bestand aan het apparaat‑deelblad overhandigen in plaats van een openbare URL te verzinnen.

`selected_file_id = the exact managed copy chosen from your app’s saved-file list`; de naam en MIME beschrijven het echte lokale bestand.

List saved files → Restore saved file → Share selected file nadat de gebruiker op Delen tikt. Bewaar de opgeslagen kopie totdat ze expliciet Delete saved copy kiezen.

Gebruik `share_status` en `share_sheet_closed` om de UI bij te werken nadat het blad is gesloten. Houd de bestands-ID vast voor een andere bewuste deling.

Een gesloten deelblad is geen bewijs dat een e‑mail/bericht is afgeleverd. Verwerk annulering en `files_error` zonder succes te melden aan de ontvanger.

Bestanden blijven op dit apparaat totdat ze gedeeld of apart geüpload worden.

Wat nu werkt

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.

Bouw de workflow

Gebruik de beschikbare bèta-acties hieronder en test het resultaat op uw doelapparaten.

Deze voorbeelden gebruiken app‑records zoals Lesson, Message en Order. Vervang ze door uw eigen gegevenstypen en elementnamen. Voorbeeld‑mediapaden moeten worden vervangen door uw eigen bestanden.

  1. Stel document_context = Current User's unique id in, of een stabiele waarde voor het account en rapport. Kies accepted_mime_types_json, max_files en max_file_bytes.

  2. Voer Pick files uit, of gebruik Load local source voor een leesbaar bestand geproduceerd door Foto‑Editor of Recorder. Na selection_changed, lees de overeenkomende bestandslijsten; Select picked file kiest een index.

  3. Voer Save selection locally uit. Na files_saved, bewaar saved_file_ids in het lokale bijlage‑record van uw app. List saved files toont opgeslagen kopieën; Restore saved file opent de geselecteerde opgeslagen ID.

  4. Share selected file opent het systeem‑deelmenu. share_sheet_closed betekent alleen dat het menu gesloten is. Delete saved copy heeft de geselecteerde ID en confirm=yes nodig.

Workflow‑diagram — geen appscreenshot

Eenmalig configureren

Maak of kies uw Bubble app‑project in BestPlugins → Dashboard → Plugins. Kies Xodera Offline Files Native, kopieer de sleutel, open vervolgens Bubble → Plugins → Xodera Offline Files Native en plak deze in licensing_api_key. Sla één keer op; gebruik daarna de acties hieronder. Elke plug‑in in elk project heeft zijn eigen sleutel.

Gebruik een native app met toegang tot de gekozen bestanden. Stel een stabiele document_context in voor het account of rapport zodat de opgeslagen bestanden correct gegroepeerd blijven.

Eenmalig configureren
  1. Maak of kies uw Bubble app‑project op BestPlugins → Dashboard → Plugins.
  2. Kies deze plug‑in en kopieer de projectsleutel.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Voeg het element toe, kies uw app‑gegevens en bouw de workflow hieronder.
  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.
Installatie en 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.

Sla het resultaat op in je app

Voorbeeld LocalAttachment: eigenaar, document_context, opgeslagen bestand‑ID, display_name, mime_type en size_bytes. Deze ID werkt alleen op hetzelfde apparaat en voor hetzelfde account of rapport. Voor een online bijlage, upload het bestand met een aparte workflow en sla de geretourneerde online bestandsreferentie op.

Fout, annulering en herstel

Een geannuleerde picker retourneert operation_cancelled; hij verzendt het formulier niet. Terwijl native_pending=yes, wacht tot de bestandskiezer of deelmenu sluit voordat u een andere opent. Clear session wist de huidige selectie maar behoudt opgeslagen kopieën. Als een bestand ontbreekt, laat de gebruiker het opnieuw kiezen.

Mogelijkheden en limieten

Kies 1–20 bestanden tegelijk. Per‑bestand limiet: 1 byte–256 MiB, met een lagere limiet indien u dat wilt. Bestand‑type filters controleren bestanden niet op virussen. Apparaten‑bestand‑ID’s en paden werken niet als cloud‑downloadlinks. Lokale kopieën zijn geen versleutelde opslag en kunnen verloren gaan als app‑data wordt verwijderd.

Instellingen, acties en resultaten

Gebruik deze namen in Bubble. Geplande functies worden apart gemarkeerd.

Beschikbare bètainstellingen

Elementinstellingen

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

Statussen

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 (lijst)file_uris · text (lijst)file_names · text (lijst)file_mime_types · text (lijst)file_sizes · number (lijst)files_json · textsaved_count · numbersaved_file_ids · text (lijst)saved_file_uris · text (lijst)saved_file_names · text (lijst)saved_file_mime_types · text (lijst)saved_file_sizes · number (lijst)saved_files_json · textinvalid_saved_count · numbershare_status · texterror_code · text

Evenementen

selection_changedfiles_savedlist_loadedfile_restoredfile_deletedshare_sheet_closedoperation_cancelledfiles_error

Acties en hun invoer

Pick filesLoad local sourceSelect picked fileSave selection locallyList saved filesRestore saved fileDelete saved copyShare selected fileCancel operationClear session
Elementinstellingen · 16
source_uritext · Standaard: ""
Voorbeeldwaardefile:///app-cache/report.pdf
Voorbeeld Bubble-expressiePhoto Editor's output_uri
Leesbare bestandslocatie op dit apparaat, geretourneerd door uw selector of een andere plug‑in.
display_nametext · Standaard: ""
Voorbeeldwaardereport-photo.jpg
Voorbeeld Bubble-expressieSelected Attachment's display_name
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
mime_typetext · Standaard: ""
Voorbeeldwaardeimage/jpeg
Voorbeeld Bubble-expressiePhoto Editor's output_mime
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
document_contexttext · Standaard: "default"
Voorbeeldwaarde<current-user-id>
Voorbeeld Bubble-expressieCurrent User's unique id
Stabiele waarde voor dit account of record. Gebruik dezelfde waarde bij het herstellen van opgeslagen bestanden of concepten.
selected_file_idtext · Standaard: ""
Voorbeeldwaarde<returned saved file ID>
Voorbeeld Bubble-expressieSelected LocalAttachment's local_file_id
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
accepted_mime_types_jsontext · Standaard: "[\"*/*\"]"
Voorbeeldwaarde["image/*","application/pdf"]
Voorbeeld Bubble-expressieReport Settings' accepted_mime_types_json
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
multipleyes_no · Standaard: false
Voorbeeldwaardeyes
Voorbeeld Bubble-expressieReport Settings' allow_multiple_attachments
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
copy_to_cacheyes_no · Standaard: true
Voorbeeldwaardeyes
Voorbeeld Bubble-expressieReport Settings' copy_to_cache
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
max_filesnumber · Standaard: 20
Voorbeeldwaarde5
Voorbeeld Bubble-expressieReport Settings' attachment_limit
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
max_file_bytesnumber · Standaard: 268435456
Voorbeeldwaarde10485760
Voorbeeld Bubble-expressieReport Settings' max_attachment_bytes
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
is_activeyes_no · Standaard: true
Voorbeeldwaardeyes
Voorbeeld Bubble-expressieGuideHost's view_is_active (your yes/no custom state)
Stel ja in zolang dit overzicht geopend is. Stel nee in bij verlaten, zodat afspelen of huidig werk kan stoppen.
disabledyes_no · Standaard: false
Voorbeeldwaardeno
Voorbeeld Bubble-expressieGuideHost's is_busy (your yes/no custom state)
Schakel het element uit terwijl uw app bezig is of deze actie niet beschikbaar is.
show_controlsyes_no · Standaard: true
Voorbeeldwaardeyes
Voorbeeld Bubble-expressieApp Settings' show_editor_controls
Toon of verberg de ingebouwde bedieningselementen.
languagetext · Standaard: "auto"
Voorbeeldwaardeuk
Voorbeeld Bubble-expressieCurrent User's preferred_language
Stel language=auto in om een ondersteund apparaat of browsertaal te volgen. Voer een ondersteunde taalcodes in om deze expliciet te kiezen.
ui_text_jsontext · Standaard: ""
Voorbeeldwaarde{}
Voorbeeld Bubble-expressieApp Settings' player_labels_json (supported keys only)
Optionele JSON met ondersteunde knoplabels. Laat leeg om de ingebouwde tekst te gebruiken.
titletext · Standaard: ""
VoorbeeldwaardeLesson 4 — review
Voorbeeld Bubble-expressieSelected Lesson's name
Zichtbare app‑tekst; leeg laat ingebouwde gelokaliseerde tekst gebruiken waar ondersteund. Geen inloggegevens.
Acties en hun invoer · 10
Pick files

Geen actieparameters

Load local source
source_uritext · Standaard: —
Voorbeeldwaardefile:///app-cache/report.pdf
Voorbeeld Bubble-expressiePhoto Editor's output_uri
Leesbare bestandslocatie op dit apparaat, geretourneerd door uw selector of een andere plug‑in.
display_nametext · Standaard: —
Voorbeeldwaardereport-photo.jpg
Voorbeeld Bubble-expressieSelected Attachment's display_name
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
mime_typetext · Standaard: —
Voorbeeldwaardeimage/jpeg
Voorbeeld Bubble-expressiePhoto Editor's output_mime
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Select picked file
indexnumber · Standaard: —
Voorbeeldwaarde0
Voorbeeld Bubble-expressieSelected row's current_source_index
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Save selection locally

Geen actieparameters

List saved files

Geen actieparameters

Restore saved file
file_idtext · Standaard: —
Voorbeeldwaarde<returned saved file ID>
Voorbeeld Bubble-expressieSelected LocalAttachment's local_file_id
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Delete saved copy
file_idtext · Standaard: —
Voorbeeldwaarde<returned saved file ID>
Voorbeeld Bubble-expressieSelected LocalAttachment's local_file_id
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
confirmyes_no · Standaard: —
Voorbeeldwaardeyes — explicit confirmation only
Voorbeeld Bubble-expressieConfirm Checkbox is checked
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Share selected file
dialog_titletext · Standaard: —
VoorbeeldwaardeShare attachment
Voorbeeld Bubble-expressieSelected Report's share_title
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
utitext · Standaard: —
Voorbeeldwaarde""
Voorbeeld Bubble-expressieEmpty unless your iOS integration supplies a proven UTI
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Cancel operation

Geen actieparameters

Clear session

Geen actieparameters

Statussen en gebeurtenissen

Statussen

status · text

Huidig resultaat van deze actie. Gebruik het bijpassende voltooiings‑event vóór het opslaan van succes.

is_busy · yes_no

Het werk is nog bezig. Wacht voordat u een andere actie start.

native_pending · yes_no

Het werk is nog bezig. Wacht voordat u een andere actie start.

operation · text

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

selection_count · number

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

selected_index · number

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

file_id · text

Identificatie voor dit item of deze actie. Bewaar deze bij het bijbehorende app‑record. Gebruik dezelfde verzoek‑identificatie bij het opnieuw proberen van een onzeker resultaat.

local_uri · text

Bestandslocatie op dit apparaat. Sla het bestand apart op of upload het als het online bewaard moet blijven.

display_name · text

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

mime_type · text

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

mime_source · text

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

size_bytes · number

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

is_saved_locally · yes_no

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

file_ids · text (lijst)

Een lijst voor de geselecteerde bestanden. Items op dezelfde index in de andere bestandslijsten verwijzen naar hetzelfde bestand.

file_uris · text (lijst)

Een lijst voor de geselecteerde bestanden. Items op dezelfde index in de andere bestandslijsten verwijzen naar hetzelfde bestand.

file_names · text (lijst)

Een lijst voor de geselecteerde bestanden. Items op dezelfde index in de andere bestandslijsten verwijzen naar hetzelfde bestand.

file_mime_types · text (lijst)

Een lijst voor de geselecteerde bestanden. Items op dezelfde index in de andere bestandslijsten verwijzen naar hetzelfde bestand.

file_sizes · number (lijst)

Een lijst voor de geselecteerde bestanden. Items op dezelfde index in de andere bestandslijsten verwijzen naar hetzelfde bestand.

files_json · text

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

saved_count · number

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

saved_file_ids · text (lijst)

Een lijst voor de geselecteerde bestanden. Items op dezelfde index in de andere bestandslijsten verwijzen naar hetzelfde bestand.

saved_file_uris · text (lijst)

Een lijst voor de geselecteerde bestanden. Items op dezelfde index in de andere bestandslijsten verwijzen naar hetzelfde bestand.

saved_file_names · text (lijst)

Een lijst voor de geselecteerde bestanden. Items op dezelfde index in de andere bestandslijsten verwijzen naar hetzelfde bestand.

saved_file_mime_types · text (lijst)

Een lijst voor de geselecteerde bestanden. Items op dezelfde index in de andere bestandslijsten verwijzen naar hetzelfde bestand.

saved_file_sizes · number (lijst)

Een lijst voor de geselecteerde bestanden. Items op dezelfde index in de andere bestandslijsten verwijzen naar hetzelfde bestand.

saved_files_json · text

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

invalid_saved_count · number

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

share_status · text

Huidig resultaat van deze actie. Gebruik het bijpassende voltooiings‑event vóór het opslaan van succes.

error_code · text

Foutinformatie voor de laatste actie. Toon een nuttig bericht en bied de relevante herpoging aan.

Evenementen

selection_changed

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

files_saved

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

list_loaded

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

file_restored

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

file_deleted

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

share_sheet_closed

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

operation_cancelled

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

files_error

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

Vragen die ontwikkelaars stellen

Betekent Delen “verzonden”?

Nee. Het besturingssysteem biedt hier geen betrouwbaar ontvangst‑bevestiging van de ontvanger. Toon “share sheet closed”.

Hoe werkt het 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.

Gerelateerde handleidingen

Voor hulp, vertel ons welke plugin en welk apparaat u gebruikt, welke actie u probeerde en wat er gebeurde. Gebruik een voorbeeld zonder persoonlijke gegevens. Deel nooit uw sleutel of privé‑bestanden.