
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.
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.
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.
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.
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.
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
- Maak of kies uw Bubble app‑project op BestPlugins → Dashboard → Plugins.
- Kies deze plug‑in en kopieer de projectsleutel.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Voeg het element toe, kies uw app‑gegevens en bouw de workflow hieronder.
- 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 · textStatussen
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 · textEvenementen
selection_changedfiles_savedlist_loadedfile_restoredfile_deletedshare_sheet_closedoperation_cancelledfiles_errorActies en hun invoer
Pick filesLoad local sourceSelect picked fileSave selection locallyList saved filesRestore saved fileDelete saved copyShare selected fileCancel operationClear sessionElementinstellingen · 16
source_uritext · Standaard: ""- Voorbeeldwaarde
file:///app-cache/report.pdf - Voorbeeld Bubble-expressie
Photo Editor's output_uri - Leesbare bestandslocatie op dit apparaat, geretourneerd door uw selector of een andere plug‑in.
display_nametext · Standaard: ""- Voorbeeldwaarde
report-photo.jpg - Voorbeeld Bubble-expressie
Selected Attachment's display_name - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
mime_typetext · Standaard: ""- Voorbeeldwaarde
image/jpeg - Voorbeeld Bubble-expressie
Photo 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-expressie
Current 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-expressie
Selected 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-expressie
Report Settings' accepted_mime_types_json - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
multipleyes_no · Standaard: false- Voorbeeldwaarde
yes - Voorbeeld Bubble-expressie
Report Settings' allow_multiple_attachments - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
copy_to_cacheyes_no · Standaard: true- Voorbeeldwaarde
yes - Voorbeeld Bubble-expressie
Report Settings' copy_to_cache - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
max_filesnumber · Standaard: 20- Voorbeeldwaarde
5 - Voorbeeld Bubble-expressie
Report Settings' attachment_limit - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
max_file_bytesnumber · Standaard: 268435456- Voorbeeldwaarde
10485760 - Voorbeeld Bubble-expressie
Report Settings' max_attachment_bytes - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
is_activeyes_no · Standaard: true- Voorbeeldwaarde
yes - Voorbeeld Bubble-expressie
GuideHost'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- Voorbeeldwaarde
no - Voorbeeld Bubble-expressie
GuideHost'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- Voorbeeldwaarde
yes - Voorbeeld Bubble-expressie
App Settings' show_editor_controls - Toon of verberg de ingebouwde bedieningselementen.
languagetext · Standaard: "auto"- Voorbeeldwaarde
uk - Voorbeeld Bubble-expressie
Current 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-expressie
App Settings' player_labels_json (supported keys only) - Optionele JSON met ondersteunde knoplabels. Laat leeg om de ingebouwde tekst te gebruiken.
titletext · Standaard: ""- Voorbeeldwaarde
Lesson 4 — review - Voorbeeld Bubble-expressie
Selected 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: —- Voorbeeldwaarde
file:///app-cache/report.pdf - Voorbeeld Bubble-expressie
Photo Editor's output_uri - Leesbare bestandslocatie op dit apparaat, geretourneerd door uw selector of een andere plug‑in.
display_nametext · Standaard: —- Voorbeeldwaarde
report-photo.jpg - Voorbeeld Bubble-expressie
Selected Attachment's display_name - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
mime_typetext · Standaard: —- Voorbeeldwaarde
image/jpeg - Voorbeeld Bubble-expressie
Photo Editor's output_mime - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Select picked file
indexnumber · Standaard: —- Voorbeeldwaarde
0 - Voorbeeld Bubble-expressie
Selected 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-expressie
Selected 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-expressie
Selected LocalAttachment's local_file_id - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
confirmyes_no · Standaard: —- Voorbeeldwaarde
yes — explicit confirmation only - Voorbeeld Bubble-expressie
Confirm Checkbox is checked - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Share selected file
dialog_titletext · Standaard: —- Voorbeeldwaarde
Share attachment - Voorbeeld Bubble-expressie
Selected Report's share_title - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
utitext · Standaard: —- Voorbeeldwaarde
"" - Voorbeeld Bubble-expressie
Empty 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 · textHuidig resultaat van deze actie. Gebruik het bijpassende voltooiings‑event vóór het opslaan van succes.
is_busy · yes_noHet werk is nog bezig. Wacht voordat u een andere actie start.
native_pending · yes_noHet werk is nog bezig. Wacht voordat u een andere actie start.
operation · textHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
selection_count · numberHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
selected_index · numberHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
file_id · textIdentificatie 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 · textBestandslocatie op dit apparaat. Sla het bestand apart op of upload het als het online bewaard moet blijven.
display_name · textHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
mime_type · textHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
mime_source · textHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
size_bytes · numberHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
is_saved_locally · yes_noHuidige 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 · textHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
saved_count · numberHuidige 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 · textHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
invalid_saved_count · numberHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
share_status · textHuidig resultaat van deze actie. Gebruik het bijpassende voltooiings‑event vóór het opslaan van succes.
error_code · textFoutinformatie voor de laatste actie. Toon een nuttig bericht en bied de relevante herpoging aan.
Evenementen
selection_changedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
files_savedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
list_loadedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
file_restoredWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
file_deletedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
share_sheet_closedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
operation_cancelledWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
files_errorWanneer 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.