Interfície Offline Files.
Interfície Offline Files.
← Totes les guies natives

Xodera Plugins · Bubble Native

Xodera Offline Files Native

Mantingues les adjuncions de l’informe i els fitxers seleccionats al dispositiu, restaura‑los més tard i permet a l’usuari compartir una còpia seleccionada.

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.

Documentació revisada 6 novembre 2026

Exemples pràctics

Prepara diverses adjuncions locals abans d’enviar un informe

Un formulari ha de mostrar quins fitxers s’han seleccionat i permetre a l’usuari conservar una còpia gestionada abans de qualsevol enviament al núvol.

`accepted_mime_types_json = your allowed MIME list`; `multiple = yes`; defineix `max_files`, `max_file_bytes` i un `document_context` de compte/informe.

Pick files → inspecciona els noms/mides seleccionats → Save selection locally. El teu formulari conserva els ID de fitxer resultants fins que el flux de treball separat d’Enviament carregui els fitxers aprovats.

Utilitzeu `selection_count`, `file_names`, `file_sizes` i `saved_file_ids` per renderitzar la llista de revisió. Una còpia gestionada desada conserva l’original del cridador.

Un selector cancel·lat no és un informe enviat. A `files_error`, conserveu els ID locals ja acceptats i mostreu `error_code`; mai creeu un adjunt al núvol només a partir d’un URI local.

Els fitxers romanen en aquest dispositiu fins que es comparteixin o es carreguin per separat.

Conserveu la sortida d’un editor de fotos o d’un gravador per a un ús posterior.

Un fitxer local generat pot estar en una ubicació temporal; l’aplicació necessita una còpia gestionada explícita.

`source_uri = the local output of a separately accepted editor/recorder`; enllaça el seu real `display_name` i `mime_type`; utilitza el `document_context` del mateix propietari.

Load local source → inspecciona les metadades → Save selection locally. Emmagatzemeu l’ID de fitxer retornat només al dispositiu/context corresponent, i després Restore saved file amb aquest ID exacte quan calgui.

Consumeu `file_id`, `local_uri`, `size_bytes` i `is_saved_locally`; utilitzeu `file_restored` per distingir una restauració completada d’una simple sol·licitud.

Rebutgeu una URL HTTP remota com a font local. Si la font desapareix o la restauració falla, mostreu `error_code` i conserveu el registre original de l’aplicació per a la recuperació.

Els fitxers romanen en aquest dispositiu fins que es comparteixin o es carreguin per separat.

Permeteu que un usuari comparteixi un rebut local generat per l’aplicació o una exportació.

L’aplicació hauria de passar un fitxer local seleccionat a la fulla de compartició del dispositiu en lloc d’inventar una URL pública.

`selected_file_id = the exact managed copy chosen from your app’s saved-file list`; el seu nom i MIME descriuen el fitxer local real.

List saved files → Restore saved file → Share selected file després que l’usuari premi Compartir. Mantingueu la còpia desada fins que triï explícitament Delete saved copy.

Utilitzeu `share_status` i `share_sheet_closed` per actualitzar la interfície després que la fulla es tanqui. Conserveu l’ID del fitxer per a una altra compartició deliberada.

Una fulla de compartició tancada no és prova que un correu electrònic/missatge s’hagi entregat. Gestioneu la cancel·lació i `files_error` sense informar d’èxit al destinatari.

Els fitxers romanen en aquest dispositiu fins que es comparteixin o es carreguin per separat.

Què funciona ara

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 el flux de treball

Utilitzeu les accions beta disponibles a continuació i proveu el resultat en els vostres dispositius de destinació.

Aquests exemples utilitzen registres d'aplicació com Lesson, Message i Order. Substituïu-los amb els vostres propis tipus de dades i noms d'elements. Les adreces multimèdia d'exemple s'han de substituir per els vostres propis fitxers.

  1. Defineix document_context = Current User's unique id, o un valor estable per al compte i informe. Tria accepted_mime_types_json, max_files i max_file_bytes.

  2. Executa Pick files, o utilitza Load local source per a un fitxer llegible generat per l’Editor de fotos o el Gravador. Després de selection_changed, llegeix les llistes de fitxers coincidents; Select picked file tria un índex.

  3. Executa Save selection locally. Després de files_saved, conserva saved_file_ids al registre d’adjuncions locals de la teva aplicació. List saved files mostra les còpies desades; Restore saved file obre l’ID desat seleccionat.

  4. Share selected file obre el menú de compartició del sistema. share_sheet_closed només indica que el menú s’ha tancat. Delete saved copy necessita l’ID seleccionat i confirm=yes.

Diagrama de flux de treball — no és una captura de pantalla de l'aplicació

Configura una vegada

Creeu o trieu el vostre projecte d’aplicació Bubble a BestPlugins → Dashboard → Plugins. Trieu Xodera Offline Files Native, copieu la seva clau i, a continuació, obriu Bubble → Plugins → Xodera Offline Files Native i enganxeu‑la a licensing_api_key. Deseu una vegada; després utilitzeu les accions a continuació. Cada connector en cada projecte té la seva pròpia clau.

Utilitza una aplicació nativa amb accés als fitxers seleccionats. Defineix un document_context estable per al compte o informe perquè els fitxers desats es mantinguin agrupats correctament.

Configura una vegada
  1. Creeu o trieu el vostre projecte d’aplicació Bubble a BestPlugins → Dashboard → Plugins.
  2. Trieu aquest connector i copieu la clau del projecte.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Afegiu l’element, trieu les vostres dades d’aplicació i construïu el flux de treball a continuació.
  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.
Instal·lació i subscripció

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.

Desa el resultat a la teva aplicació

Exemple LocalAttachment: propietari, document_context, ID del fitxer desat, display_name, mime_type i size_bytes. Aquest ID funciona només al mateix dispositiu i per al mateix compte o informe. Per a una adjunció en línia, carrega el fitxer amb un flux de treball separat i desa la referència del fitxer en línia retornada.

Fallada, cancel·lació i recuperació

Un selector cancel·lat retorna operation_cancelled; no envia el formulari. Mentre native_pending=yes, espera que el selector de fitxers o el menú de compartició es tanqui abans d’obrir-ne un altre. Clear session neteja la selecció actual però conserva les còpies desades. Si falta un fitxer, permet que l’usuari el torni a seleccionar.

Capacitats i límits

Tria fitxers 1–20 d’un cop. Límits per fitxer: 1 byte–256 MiB, amb un límit inferior si ho prefereixes. Els filtres de tipus de fitxer no comproven virus. Els ID i rutes de fitxers del dispositiu no funcionen com a enllaços de descàrrega al núvol. Les còpies locals no són emmagatzematge encriptat i es poden perdre si es suprimeixen les dades de l’aplicació.

Configuracions, accions i resultats

Utilitzeu aquests noms a Bubble. Les funcions planificades es marquen per separat.

Configuracions beta disponibles

Configuració de l'element

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

Estats

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

Esdeveniments

selection_changedfiles_savedlist_loadedfile_restoredfile_deletedshare_sheet_closedoperation_cancelledfiles_error

Accions i les seves entrades

Pick filesLoad local sourceSelect picked fileSave selection locallyList saved filesRestore saved fileDelete saved copyShare selected fileCancel operationClear session
Configuració de l'element · 16
source_uritext · Per defecte: ""
Valor d'exemplefile:///app-cache/report.pdf
Exemple d'expressió BubblePhoto Editor's output_uri
Ubicació llegible del fitxer en aquest dispositiu, retornada pel vostre selector o un altre connector.
display_nametext · Per defecte: ""
Valor d'exemplereport-photo.jpg
Exemple d'expressió BubbleSelected Attachment's display_name
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
mime_typetext · Per defecte: ""
Valor d'exempleimage/jpeg
Exemple d'expressió BubblePhoto Editor's output_mime
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
document_contexttext · Per defecte: "default"
Valor d'exemple<current-user-id>
Exemple d'expressió BubbleCurrent User's unique id
Valor estable per a aquest compte o registre. Utilitzeu el mateix valor en restaurar els seus fitxers o esborranys desats.
selected_file_idtext · Per defecte: ""
Valor d'exemple<returned saved file ID>
Exemple d'expressió BubbleSelected LocalAttachment's local_file_id
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
accepted_mime_types_jsontext · Per defecte: "[\"*/*\"]"
Valor d'exemple["image/*","application/pdf"]
Exemple d'expressió BubbleReport Settings' accepted_mime_types_json
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
multipleyes_no · Per defecte: false
Valor d'exempleyes
Exemple d'expressió BubbleReport Settings' allow_multiple_attachments
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
copy_to_cacheyes_no · Per defecte: true
Valor d'exempleyes
Exemple d'expressió BubbleReport Settings' copy_to_cache
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
max_filesnumber · Per defecte: 20
Valor d'exemple5
Exemple d'expressió BubbleReport Settings' attachment_limit
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
max_file_bytesnumber · Per defecte: 268435456
Valor d'exemple10485760
Exemple d'expressió BubbleReport Settings' max_attachment_bytes
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
is_activeyes_no · Per defecte: true
Valor d'exempleyes
Exemple d'expressió BubbleGuideHost's view_is_active (your yes/no custom state)
Estableix sí mentre aquesta vista està oberta. Estableix no en sortir, perquè la reproducció o l'obra actual puguin aturar-se.
disabledyes_no · Per defecte: false
Valor d'exempleno
Exemple d'expressió BubbleGuideHost's is_busy (your yes/no custom state)
Desactiva l'element mentre l'aplicació està ocupada o aquesta acció no està disponible.
show_controlsyes_no · Per defecte: true
Valor d'exempleyes
Exemple d'expressió BubbleApp Settings' show_editor_controls
Mostra o amaga els controls integrats.
languagetext · Per defecte: "auto"
Valor d'exempleuk
Exemple d'expressió BubbleCurrent User's preferred_language
Estableix language=auto per seguir un dispositiu o idioma del navegador compatible. Introdueix un codi d'idioma compatible per seleccionar-lo explícitament.
ui_text_jsontext · Per defecte: ""
Valor d'exemple{}
Exemple d'expressió BubbleApp Settings' player_labels_json (supported keys only)
JSON opcional amb etiquetes de botó compatibles. Deixa buit per utilitzar el text integrat.
titletext · Per defecte: ""
Valor d'exempleLesson 4 — review
Exemple d'expressió BubbleSelected Lesson's name
Text visible de l'aplicació; buit utilitza la còpia localitzada integrada quan sigui compatible. No hi ha credencials.
Accions i les seves entrades · 10
Pick files

Sense paràmetres d'acció

Load local source
source_uritext · Per defecte: —
Valor d'exemplefile:///app-cache/report.pdf
Exemple d'expressió BubblePhoto Editor's output_uri
Ubicació llegible del fitxer en aquest dispositiu, retornada pel vostre selector o un altre connector.
display_nametext · Per defecte: —
Valor d'exemplereport-photo.jpg
Exemple d'expressió BubbleSelected Attachment's display_name
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
mime_typetext · Per defecte: —
Valor d'exempleimage/jpeg
Exemple d'expressió BubblePhoto Editor's output_mime
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Select picked file
indexnumber · Per defecte: —
Valor d'exemple0
Exemple d'expressió BubbleSelected row's current_source_index
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Save selection locally

Sense paràmetres d'acció

List saved files

Sense paràmetres d'acció

Restore saved file
file_idtext · Per defecte: —
Valor d'exemple<returned saved file ID>
Exemple d'expressió BubbleSelected LocalAttachment's local_file_id
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Delete saved copy
file_idtext · Per defecte: —
Valor d'exemple<returned saved file ID>
Exemple d'expressió BubbleSelected LocalAttachment's local_file_id
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
confirmyes_no · Per defecte: —
Valor d'exempleyes — explicit confirmation only
Exemple d'expressió BubbleConfirm Checkbox is checked
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Share selected file
dialog_titletext · Per defecte: —
Valor d'exempleShare attachment
Exemple d'expressió BubbleSelected Report's share_title
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
utitext · Per defecte: —
Valor d'exemple""
Exemple d'expressió BubbleEmpty unless your iOS integration supplies a proven UTI
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Cancel operation

Sense paràmetres d'acció

Clear session

Sense paràmetres d'acció

Estats i esdeveniments

Estats

status · text

Resultat actual d'aquesta acció. Utilitza l'esdeveniment de finalització coincident abans d'enregistrar l'èxit.

is_busy · yes_no

La feina encara està en curs. Espereu abans d'iniciar una altra acció.

native_pending · yes_no

La feina encara està en curs. Espereu abans d'iniciar una altra acció.

operation · text

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

selection_count · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

selected_index · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

file_id · text

Identificador per a aquest element o acció. Conserva'l amb el registre d'aplicació corresponent. Utilitza el mateix identificador de sol·licitud en tornar a intentar un resultat incert.

local_uri · text

Ubicació del fitxer en aquest dispositiu. Deseu o pugeu el fitxer per separat si ha de quedar en línia.

display_name · text

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

mime_type · text

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

mime_source · text

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

size_bytes · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

is_saved_locally · yes_no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

file_ids · text (llista)

Una llista per als fitxers seleccionats. Els elements amb el mateix índex a les altres llistes de fitxers fan referència al mateix fitxer.

file_uris · text (llista)

Una llista per als fitxers seleccionats. Els elements amb el mateix índex a les altres llistes de fitxers fan referència al mateix fitxer.

file_names · text (llista)

Una llista per als fitxers seleccionats. Els elements amb el mateix índex a les altres llistes de fitxers fan referència al mateix fitxer.

file_mime_types · text (llista)

Una llista per als fitxers seleccionats. Els elements amb el mateix índex a les altres llistes de fitxers fan referència al mateix fitxer.

file_sizes · number (llista)

Una llista per als fitxers seleccionats. Els elements amb el mateix índex a les altres llistes de fitxers fan referència al mateix fitxer.

files_json · text

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

saved_count · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

saved_file_ids · text (llista)

Una llista per als fitxers seleccionats. Els elements amb el mateix índex a les altres llistes de fitxers fan referència al mateix fitxer.

saved_file_uris · text (llista)

Una llista per als fitxers seleccionats. Els elements amb el mateix índex a les altres llistes de fitxers fan referència al mateix fitxer.

saved_file_names · text (llista)

Una llista per als fitxers seleccionats. Els elements amb el mateix índex a les altres llistes de fitxers fan referència al mateix fitxer.

saved_file_mime_types · text (llista)

Una llista per als fitxers seleccionats. Els elements amb el mateix índex a les altres llistes de fitxers fan referència al mateix fitxer.

saved_file_sizes · number (llista)

Una llista per als fitxers seleccionats. Els elements amb el mateix índex a les altres llistes de fitxers fan referència al mateix fitxer.

saved_files_json · text

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

invalid_saved_count · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

share_status · text

Resultat actual d'aquesta acció. Utilitza l'esdeveniment de finalització coincident abans d'enregistrar l'èxit.

error_code · text

Informació d'error de l'última acció. Mostra un missatge útil i ofereix el reintent corresponent.

Esdeveniments

selection_changed

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

files_saved

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

list_loaded

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

file_restored

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

file_deleted

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

share_sheet_closed

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

operation_cancelled

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

files_error

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

Preguntes que fan els desenvolupadors

¿Share vol dir “enviat”?

No. El sistema operatiu no proporciona aquí un rebut fiable d’èxit del destinatari. Mostra “share sheet closed”.

Com funciona la subscripció?

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.

Guies relacionades

Per obtenir ajuda, indiqueu quin connector i dispositiu utilitzeu, l'acció que heu provat i què ha passat. Utilitzeu un exemple sense dades personals. No compartiu mai la vostra clau ni fitxers privats.