
Xodera Plugins · Bubble Native
Xodera Offline Files Native
Mantieni gli allegati del report e i file scelti sul dispositivo, ripristinali in seguito e consenti all'utente di condividere una copia selezionata.
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.
Documentazione revisionata 6 novembre 2026
Esempi pratici
Prepara diversi allegati locali prima di inviare un report
Un modulo deve mostrare quali file sono stati selezionati e consentire all'utente di conservare una copia gestita prima di qualsiasi invio al cloud.
`accepted_mime_types_json = your allowed MIME list`; `multiple = yes`; impostare `max_files`, `max_file_bytes` e un account/report `document_context`.
Pick files → ispeziona i nomi/size selezionati → Save selection locally. Il tuo modulo conserva gli ID file risultanti fino a quando il flusso di lavoro Submit separato carica i file approvati.
Usa `selection_count`, `file_names`, `file_sizes` e `saved_file_ids` per generare l'elenco di revisione. Una copia gestita salvata conserva l'originale del chiamante.
Un selettore annullato non è un report inviato. Su `files_error`, conserva gli ID locali già accettati e mostra `error_code`; non creare mai un allegato cloud da un URI locale da solo.
I file rimangono su questo dispositivo fino a quando non vengono condivisi o caricati separatamente.
Conserva l'output di un editor fotografico o di un registratore per un uso successivo
Un file locale generato può trovarsi in una posizione temporanea; l'app necessita di una copia gestita esplicita.
`source_uri = the local output of a separately accepted editor/recorder`; collega il suo vero `display_name` e `mime_type`; usa lo `document_context` dello stesso proprietario.
Load local source → ispeziona i metadati → Save selection locally. Memorizza l'ID file restituito solo nel dispositivo/contesto corrispondente, quindi Restore saved file con quell'esatto ID quando necessario.
Consuma `file_id`, `local_uri`, `size_bytes` e `is_saved_locally`; usa `file_restored` per distinguere un ripristino completato da una semplice richiesta.
Rifiuta un URL remoto HTTP come fonte locale. Se una fonte scompare o il ripristino fallisce, mostra `error_code` e conserva il record originale dell'app per il recupero.
I file rimangono su questo dispositivo fino a quando non vengono condivisi o caricati separatamente.
Consenti a un utente di condividere una ricevuta locale generata dall'app o un'esportazione
L'app dovrebbe passare un file locale selezionato al foglio di condivisione del dispositivo invece di creare un URL pubblico.
`selected_file_id = the exact managed copy chosen from your app’s saved-file list`; il suo nome e MIME descrivono il vero file locale.
List saved files → Restore saved file → Share selected file dopo che l'utente tocca Condividi. Conserva la copia salvata fino a quando non sceglie esplicitamente Delete saved copy.
Usa `share_status` e `share_sheet_closed` per aggiornare l'interfaccia dopo la chiusura del foglio. Mantieni l'ID file per un'altra condivisione deliberata.
Un foglio di condivisione chiuso non è prova che un'email/messaggio sia stato consegnato. Gestisci la cancellazione e `files_error` senza segnalare il successo al destinatario.
I file rimangono su questo dispositivo fino a quando non vengono condivisi o caricati separatamente.
Cosa funziona ora
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.
Crea il flusso di lavoro
Usa le azioni beta disponibili qui sotto e testa il risultato sui tuoi dispositivi target.
Questi esempi utilizzano record di app come Lesson, Message e Order. Sostituiscili con i tuoi tipi di dati e nomi di elemento. Gli indirizzi multimediali di esempio devono essere sostituiti con i tuoi file.
Imposta document_context = Current User's unique id, o un valore stabile per l'account e il report. Scegli accepted_mime_types_json, max_files e max_file_bytes.
Esegui Pick files, oppure usa Load local source per un file leggibile prodotto da Photo Editor o Recorder. Dopo selection_changed, leggi gli elenchi di file corrispondenti; Select picked file sceglie un indice.
Esegui Save selection locally. Dopo files_saved, conserva saved_file_ids nel registro locale degli allegati della tua app. List saved files mostra le copie salvate; Restore saved file apre l'ID salvato selezionato.
Share selected file apre il menu di condivisione di sistema. share_sheet_closed indica solo che il menu è stato chiuso. Delete saved copy richiede l'ID selezionato e confirm=yes.
Configura una sola volta
Crea o scegli il tuo progetto app Bubble in BestPlugins → Dashboard → Plugins. Scegli Xodera Offline Files Native, copia la sua chiave, quindi apri Bubble → Plugins → Xodera Offline Files Native e incollala in licensing_api_key. Salva una volta; poi usa le azioni qui sotto. Ogni plugin in ogni progetto ha la propria chiave.
Utilizza un'app nativa con accesso ai file scelti. Imposta uno document_context stabile per l'account o il report affinché i file salvati rimangano correttamente raggruppati.
Configura una sola volta
- Crea o scegli il tuo progetto app Bubble su BestPlugins → Dashboard → Plugins.
- Scegli questo plugin e copia la sua chiave di progetto.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Aggiungi l'elemento, scegli i dati della tua app e costruisci il flusso di lavoro qui sotto.
- 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.
Installazione e abbonamento
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.
Salva il risultato nella tua app
Esempio LocalAttachment: proprietario, document_context, ID file salvato, display_name, mime_type e size_bytes. Questo ID funziona solo sullo stesso dispositivo e per lo stesso account o report. Per un allegato online, carica il file con un flusso di lavoro separato e salva il riferimento al file online restituito.
Errore, annullamento e ripristino
Un selettore annullato restituisce operation_cancelled; non invia il modulo. Mentre native_pending=yes, attendi che il selettore file o il menu di condivisione si chiuda prima di aprirne un altro. Clear session cancella la selezione corrente ma conserva le copie salvate. Se un file manca, consenti all'utente di sceglierlo nuovamente.
Capacità e limiti
Seleziona file 1–20 contemporaneamente. Limite per file: 1 byte–256 MiB, con un limite inferiore se lo desideri. I filtri per tipo di file non controllano la presenza di virus. Gli ID e i percorsi dei file del dispositivo non funzionano come link di download cloud. Le copie locali non sono archivi crittografati e possono andare perse se i dati dell'app vengono rimossi.
Impostazioni, azioni e risultati
Usa questi nomi in Bubble. Le funzionalità pianificate sono contrassegnate separatamente.
Impostazioni beta disponibili
Impostazioni elemento
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 · textStati
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 (elenco)file_uris · text (elenco)file_names · text (elenco)file_mime_types · text (elenco)file_sizes · number (elenco)files_json · textsaved_count · numbersaved_file_ids · text (elenco)saved_file_uris · text (elenco)saved_file_names · text (elenco)saved_file_mime_types · text (elenco)saved_file_sizes · number (elenco)saved_files_json · textinvalid_saved_count · numbershare_status · texterror_code · textEventi
selection_changedfiles_savedlist_loadedfile_restoredfile_deletedshare_sheet_closedoperation_cancelledfiles_errorAzioni e i loro input
Pick filesLoad local sourceSelect picked fileSave selection locallyList saved filesRestore saved fileDelete saved copyShare selected fileCancel operationClear sessionImpostazioni elemento · 16
source_uritext · Predefinito: ""- Valore di esempio
file:///app-cache/report.pdf - Esempio di espressione Bubble
Photo Editor's output_uri - Posizione file leggibile su questo dispositivo, restituita dal tuo selettore o da un altro plugin.
display_nametext · Predefinito: ""- Valore di esempio
report-photo.jpg - Esempio di espressione Bubble
Selected Attachment's display_name - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
mime_typetext · Predefinito: ""- Valore di esempio
image/jpeg - Esempio di espressione Bubble
Photo Editor's output_mime - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
document_contexttext · Predefinito: "default"- Valore di esempio
<current-user-id> - Esempio di espressione Bubble
Current User's unique id - Valore stabile per questo account o record. Usa lo stesso valore quando ripristini i file o le bozze salvati.
selected_file_idtext · Predefinito: ""- Valore di esempio
<returned saved file ID> - Esempio di espressione Bubble
Selected LocalAttachment's local_file_id - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
accepted_mime_types_jsontext · Predefinito: "[\"*/*\"]"- Valore di esempio
["image/*","application/pdf"] - Esempio di espressione Bubble
Report Settings' accepted_mime_types_json - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
multipleyes_no · Predefinito: false- Valore di esempio
yes - Esempio di espressione Bubble
Report Settings' allow_multiple_attachments - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
copy_to_cacheyes_no · Predefinito: true- Valore di esempio
yes - Esempio di espressione Bubble
Report Settings' copy_to_cache - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
max_filesnumber · Predefinito: 20- Valore di esempio
5 - Esempio di espressione Bubble
Report Settings' attachment_limit - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
max_file_bytesnumber · Predefinito: 268435456- Valore di esempio
10485760 - Esempio di espressione Bubble
Report Settings' max_attachment_bytes - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
is_activeyes_no · Predefinito: true- Valore di esempio
yes - Esempio di espressione Bubble
GuideHost's view_is_active (your yes/no custom state) - Imposta sì mentre questa vista è aperta. Imposta no quando esci, così la riproduzione o il lavoro corrente può fermarsi.
disabledyes_no · Predefinito: false- Valore di esempio
no - Esempio di espressione Bubble
GuideHost's is_busy (your yes/no custom state) - Disabilita l'elemento mentre la tua app è occupata o questa azione non è disponibile.
show_controlsyes_no · Predefinito: true- Valore di esempio
yes - Esempio di espressione Bubble
App Settings' show_editor_controls - Mostra o nascondi i controlli integrati.
languagetext · Predefinito: "auto"- Valore di esempio
uk - Esempio di espressione Bubble
Current User's preferred_language - Imposta language=auto per seguire la lingua di un dispositivo o browser supportato. Inserisci un codice lingua supportato per sceglierla esplicitamente.
ui_text_jsontext · Predefinito: ""- Valore di esempio
{} - Esempio di espressione Bubble
App Settings' player_labels_json (supported keys only) - JSON opzionale con etichette dei pulsanti supportate. Lascia vuoto per usare il testo integrato.
titletext · Predefinito: ""- Valore di esempio
Lesson 4 — review - Esempio di espressione Bubble
Selected Lesson's name - Testo visibile dell'app; vuoto utilizza la copia localizzata integrata dove supportata. Nessuna credenziale.
Azioni e i loro input · 10
Pick files
Nessun parametro di azione
Load local source
source_uritext · Predefinito: —- Valore di esempio
file:///app-cache/report.pdf - Esempio di espressione Bubble
Photo Editor's output_uri - Posizione file leggibile su questo dispositivo, restituita dal tuo selettore o da un altro plugin.
display_nametext · Predefinito: —- Valore di esempio
report-photo.jpg - Esempio di espressione Bubble
Selected Attachment's display_name - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
mime_typetext · Predefinito: —- Valore di esempio
image/jpeg - Esempio di espressione Bubble
Photo Editor's output_mime - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
Select picked file
indexnumber · Predefinito: —- Valore di esempio
0 - Esempio di espressione Bubble
Selected row's current_source_index - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
Save selection locally
Nessun parametro di azione
List saved files
Nessun parametro di azione
Restore saved file
file_idtext · Predefinito: —- Valore di esempio
<returned saved file ID> - Esempio di espressione Bubble
Selected LocalAttachment's local_file_id - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
Delete saved copy
file_idtext · Predefinito: —- Valore di esempio
<returned saved file ID> - Esempio di espressione Bubble
Selected LocalAttachment's local_file_id - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
confirmyes_no · Predefinito: —- Valore di esempio
yes — explicit confirmation only - Esempio di espressione Bubble
Confirm Checkbox is checked - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
Share selected file
dialog_titletext · Predefinito: —- Valore di esempio
Share attachment - Esempio di espressione Bubble
Selected Report's share_title - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
utitext · Predefinito: —- Valore di esempio
"" - Esempio di espressione Bubble
Empty unless your iOS integration supplies a proven UTI - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
Cancel operation
Nessun parametro di azione
Clear session
Nessun parametro di azione
Stati ed eventi
Stati
status · textRisultato corrente di questa azione. Usa l'evento di completamento corrispondente prima di salvare il successo.
is_busy · yes_noIl lavoro è ancora in corso. Attendi prima di avviare un'altra azione.
native_pending · yes_noIl lavoro è ancora in corso. Attendi prima di avviare un'altra azione.
operation · textValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
selection_count · numberValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
selected_index · numberValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
file_id · textIdentificatore per questo elemento o azione. Conservalo con il record dell'app corrispondente. Usa lo stesso identificatore di richiesta quando riprovi un risultato incerto.
local_uri · textPosizione del file su questo dispositivo. Salva o carica il file separatamente se deve essere mantenuto online.
display_name · textValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
mime_type · textValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
mime_source · textValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
size_bytes · numberValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
is_saved_locally · yes_noValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
file_ids · text (elenco)Un elenco per i file selezionati. Gli elementi allo stesso indice negli altri elenchi di file si riferiscono allo stesso file.
file_uris · text (elenco)Un elenco per i file selezionati. Gli elementi allo stesso indice negli altri elenchi di file si riferiscono allo stesso file.
file_names · text (elenco)Un elenco per i file selezionati. Gli elementi allo stesso indice negli altri elenchi di file si riferiscono allo stesso file.
file_mime_types · text (elenco)Un elenco per i file selezionati. Gli elementi allo stesso indice negli altri elenchi di file si riferiscono allo stesso file.
file_sizes · number (elenco)Un elenco per i file selezionati. Gli elementi allo stesso indice negli altri elenchi di file si riferiscono allo stesso file.
files_json · textValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
saved_count · numberValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
saved_file_ids · text (elenco)Un elenco per i file selezionati. Gli elementi allo stesso indice negli altri elenchi di file si riferiscono allo stesso file.
saved_file_uris · text (elenco)Un elenco per i file selezionati. Gli elementi allo stesso indice negli altri elenchi di file si riferiscono allo stesso file.
saved_file_names · text (elenco)Un elenco per i file selezionati. Gli elementi allo stesso indice negli altri elenchi di file si riferiscono allo stesso file.
saved_file_mime_types · text (elenco)Un elenco per i file selezionati. Gli elementi allo stesso indice negli altri elenchi di file si riferiscono allo stesso file.
saved_file_sizes · number (elenco)Un elenco per i file selezionati. Gli elementi allo stesso indice negli altri elenchi di file si riferiscono allo stesso file.
saved_files_json · textValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
invalid_saved_count · numberValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
share_status · textRisultato corrente di questa azione. Usa l'evento di completamento corrispondente prima di salvare il successo.
error_code · textInformazioni di errore per l'ultima azione. Mostra un messaggio utile e offri il tentativo di nuovo pertinente.
Eventi
selection_changedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
files_savedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
list_loadedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
file_restoredQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
file_deletedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
share_sheet_closedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
operation_cancelledQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
files_errorQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
Domande che gli sviluppatori pongono
Condivisione significa “inviato”?
No. Il sistema operativo non fornisce una conferma affidabile di successo del destinatario qui. Mostra “share sheet closed”.
Come funziona l'abbonamento?
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.
Guide correlate
Per assistenza, indicaci quale plugin e dispositivo utilizzi, l'azione che hai provato e cosa è accaduto. Usa un esempio senza dati personali. Non condividere mai la tua chiave o file privati.