Interfaz Offline Files.
Interfaz Offline Files.
← Todas las guías nativas

Xodera Plugins · Bubble Native

Xodera Offline Files Native

Mantenga los archivos adjuntos del informe y los archivos seleccionados en el dispositivo, restáurelos más tarde y permita que el usuario comparta una copia 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ón revisada 6 noviembre 2026

Ejemplos prácticos

Prepare varios adjuntos locales antes de enviar un informe

Un formulario debe mostrar qué archivos se seleccionaron y permitir al usuario conservar una copia gestionada antes de cualquier envío a la nube.

`accepted_mime_types_json = your allowed MIME list`; `multiple = yes`; establecer `max_files`, `max_file_bytes` y una cuenta/informe `document_context`.

Pick files → inspeccionar los nombres/tamaños seleccionados → Save selection locally. Su formulario conserva los IDs de archivo resultantes hasta que su flujo de trabajo de Envío separado cargue los archivos aprobados.

Utilice `selection_count`, `file_names`, `file_sizes` y `saved_file_ids` para generar la lista de revisión. Una copia gestionada guardada preserva el original del llamante.

Un selector cancelado no es un informe enviado. En `files_error`, conserve los IDs locales ya aceptados y muestre `error_code`; nunca cree un adjunto en la nube a partir de una URI local únicamente.

Los archivos permanecen en este dispositivo hasta que se compartan o carguen por separado.

Conserve la salida de un editor de fotos o grabadora para uso posterior

Un archivo local generado puede residir en una ubicación temporal; la aplicación necesita una copia gestionada explícita.

`source_uri = the local output of a separately accepted editor/recorder`; vincule su verdadero `display_name` y `mime_type`; use el `document_context` del mismo propietario.

Load local source → inspeccionar metadatos → Save selection locally. Guarde el ID de archivo devuelto solo en el dispositivo/contexto correspondiente, luego Restore saved file por ese ID exacto cuando sea necesario.

Consuma `file_id`, `local_uri`, `size_bytes` y `is_saved_locally`; use `file_restored` para distinguir una restauración completada de una simple solicitud.

Rechace una URL HTTP remota como fuente local. Si una fuente desaparece o la restauración falla, muestre `error_code` y preserve el registro original de la aplicación para su recuperación.

Los archivos permanecen en este dispositivo hasta que se compartan o carguen por separado.

Permita que un usuario comparta un recibo local generado por la aplicación o una exportación

La aplicación debe pasar un archivo local seleccionado a la hoja de compartir del dispositivo en lugar de inventar una URL pública.

`selected_file_id = the exact managed copy chosen from your app’s saved-file list`; su nombre y MIME describen el archivo local real.

List saved files → Restore saved file → Share selected file después de que el usuario toque Compartir. Mantenga la copia guardada hasta que elija explícitamente Delete saved copy.

Utilice `share_status` y `share_sheet_closed` para actualizar la interfaz después de que la hoja se cierre. Conserve el ID del archivo para otro compartir deliberado.

Una hoja de compartir cerrada no prueba que un correo electrónico/mensaje haya sido entregado. Maneje la cancelación y `files_error` sin informar éxito al destinatario.

Los archivos permanecen en este dispositivo hasta que se compartan o carguen por separado.

Lo que funciona ahora

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 flujo de trabajo

Utiliza las acciones beta disponibles a continuación y prueba el resultado en tus dispositivos objetivo.

Estos ejemplos usan registros de aplicación como Lesson, Message y Order. Reemplácelos con sus propios tipos de datos y nombres de elementos. Las direcciones de medios de ejemplo deben ser sustituidas por sus propios archivos.

  1. Establezca document_context = Current User's unique id, o un valor estable para la cuenta y el informe. Elija accepted_mime_types_json, max_files y max_file_bytes.

  2. Ejecute Pick files, o use Load local source para un archivo legible producido por Photo Editor o Recorder. Después de selection_changed, lea las listas de archivos coincidentes; Select picked file elige un índice.

  3. Ejecute Save selection locally. Después de files_saved, mantenga saved_file_ids en el registro de adjuntos locales de su aplicación. List saved files muestra copias guardadas; Restore saved file abre el ID guardado seleccionado.

  4. Share selected file abre el menú de compartir del sistema. share_sheet_closed solo indica que el menú se cerró. Delete saved copy necesita el ID seleccionado y confirm=yes.

Diagrama de flujo — no es una captura de pantalla de la aplicación

Configura una vez

Crea o elige tu proyecto de aplicación Bubble en BestPlugins → Dashboard → Plugins. Elige Xodera Offline Files Native, copia su clave, luego abre Bubble → Plugins → Xodera Offline Files Native y pégala en licensing_api_key. Guarda una vez; luego usa las acciones a continuación. Cada complemento en cada proyecto tiene su propia clave.

Utilice una aplicación nativa con acceso a los archivos seleccionados. Establezca un document_context estable para la cuenta o el informe para que sus archivos guardados se agrupen correctamente.

Configura una vez
  1. Crea o elige tu proyecto de aplicación Bubble en BestPlugins → Dashboard → Plugins.
  2. Elige este complemento y copia su clave de proyecto.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Añade el elemento, elige los datos de tu aplicación y construye el flujo de trabajo a continuación.
  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.
Instalación y suscripción

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.

Guarda el resultado en tu aplicación

Ejemplo LocalAttachment: propietario, document_context, ID de archivo guardado, display_name, mime_type y size_bytes. Este ID funciona solo en el mismo dispositivo y para la misma cuenta o informe. Para un adjunto en línea, cargue el archivo con un flujo de trabajo separado y guarde la referencia del archivo en línea devuelta.

Fallo, cancelación y recuperación

Un selector cancelado devuelve operation_cancelled; no envía el formulario. Mientras native_pending=yes, espere a que el selector de archivos o el menú de compartir se cierre antes de abrir otro. Clear session borra la selección actual pero conserva las copias guardadas. Si falta un archivo, permita que el usuario lo elija de nuevo.

Capacidades y límites

Elija archivos 1–20 de una sola vez. Límite por archivo: 1 byte–256 MiB, con un límite inferior si lo desea. Los filtros de tipo de archivo no verifican los archivos en busca de virus. Los ID y rutas de archivos del dispositivo no funcionan como enlaces de descarga en la nube. Las copias locales no son almacenamiento cifrado y pueden perderse si se elimina los datos de la aplicación.

Configuraciones, acciones y resultados

Utilice estos nombres en Bubble. Las funciones planificadas están marcadas por separado.

Configuraciones beta disponibles

Configuración del 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 · text

Estados

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

Eventos

selection_changedfiles_savedlist_loadedfile_restoredfile_deletedshare_sheet_closedoperation_cancelledfiles_error

Acciones y sus entradas

Pick filesLoad local sourceSelect picked fileSave selection locallyList saved filesRestore saved fileDelete saved copyShare selected fileCancel operationClear session
Configuración del elemento · 16
source_uritext · Predeterminado: ""
Valor de ejemplofile:///app-cache/report.pdf
Ejemplo de expresión BubblePhoto Editor's output_uri
Ubicación de archivo legible en este dispositivo, devuelta por su selector u otro complemento.
display_nametext · Predeterminado: ""
Valor de ejemploreport-photo.jpg
Ejemplo de expresión BubbleSelected Attachment's display_name
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
mime_typetext · Predeterminado: ""
Valor de ejemploimage/jpeg
Ejemplo de expresión BubblePhoto Editor's output_mime
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
document_contexttext · Predeterminado: "default"
Valor de ejemplo<current-user-id>
Ejemplo de expresión BubbleCurrent User's unique id
Valor estable para esta cuenta o registro. Use el mismo valor al restaurar sus archivos o borradores guardados.
selected_file_idtext · Predeterminado: ""
Valor de ejemplo<returned saved file ID>
Ejemplo de expresión BubbleSelected LocalAttachment's local_file_id
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
accepted_mime_types_jsontext · Predeterminado: "[\"*/*\"]"
Valor de ejemplo["image/*","application/pdf"]
Ejemplo de expresión BubbleReport Settings' accepted_mime_types_json
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
multipleyes_no · Predeterminado: false
Valor de ejemployes
Ejemplo de expresión BubbleReport Settings' allow_multiple_attachments
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
copy_to_cacheyes_no · Predeterminado: true
Valor de ejemployes
Ejemplo de expresión BubbleReport Settings' copy_to_cache
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
max_filesnumber · Predeterminado: 20
Valor de ejemplo5
Ejemplo de expresión BubbleReport Settings' attachment_limit
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
max_file_bytesnumber · Predeterminado: 268435456
Valor de ejemplo10485760
Ejemplo de expresión BubbleReport Settings' max_attachment_bytes
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
is_activeyes_no · Predeterminado: true
Valor de ejemployes
Ejemplo de expresión BubbleGuideHost's view_is_active (your yes/no custom state)
Establece sí mientras esta vista está abierta. Establece no al salir, para que la reproducción o el trabajo actual puedan detenerse.
disabledyes_no · Predeterminado: false
Valor de ejemplono
Ejemplo de expresión BubbleGuideHost's is_busy (your yes/no custom state)
Desactiva el elemento mientras tu aplicación está ocupada o esta acción no está disponible.
show_controlsyes_no · Predeterminado: true
Valor de ejemployes
Ejemplo de expresión BubbleApp Settings' show_editor_controls
Mostrar u ocultar los controles integrados.
languagetext · Predeterminado: "auto"
Valor de ejemplouk
Ejemplo de expresión BubbleCurrent User's preferred_language
Configurar language=auto para seguir un dispositivo o idioma de navegador compatible. Introduzca un código de idioma compatible para seleccionarlo explícitamente.
ui_text_jsontext · Predeterminado: ""
Valor de ejemplo{}
Ejemplo de expresión BubbleApp Settings' player_labels_json (supported keys only)
JSON opcional con etiquetas de botón compatibles. Déjalo vacío para usar el texto incorporado.
titletext · Predeterminado: ""
Valor de ejemploLesson 4 — review
Ejemplo de expresión BubbleSelected Lesson's name
Texto visible de la aplicación; vacío usa la copia localizada incorporada donde sea compatible. Sin credenciales.
Acciones y sus entradas · 10
Pick files

Sin parámetros de acción

Load local source
source_uritext · Predeterminado: —
Valor de ejemplofile:///app-cache/report.pdf
Ejemplo de expresión BubblePhoto Editor's output_uri
Ubicación de archivo legible en este dispositivo, devuelta por su selector u otro complemento.
display_nametext · Predeterminado: —
Valor de ejemploreport-photo.jpg
Ejemplo de expresión BubbleSelected Attachment's display_name
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
mime_typetext · Predeterminado: —
Valor de ejemploimage/jpeg
Ejemplo de expresión BubblePhoto Editor's output_mime
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
Select picked file
indexnumber · Predeterminado: —
Valor de ejemplo0
Ejemplo de expresión BubbleSelected row's current_source_index
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
Save selection locally

Sin parámetros de acción

List saved files

Sin parámetros de acción

Restore saved file
file_idtext · Predeterminado: —
Valor de ejemplo<returned saved file ID>
Ejemplo de expresión BubbleSelected LocalAttachment's local_file_id
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
Delete saved copy
file_idtext · Predeterminado: —
Valor de ejemplo<returned saved file ID>
Ejemplo de expresión BubbleSelected LocalAttachment's local_file_id
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
confirmyes_no · Predeterminado: —
Valor de ejemployes — explicit confirmation only
Ejemplo de expresión BubbleConfirm Checkbox is checked
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
Share selected file
dialog_titletext · Predeterminado: —
Valor de ejemploShare attachment
Ejemplo de expresión BubbleSelected Report's share_title
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
utitext · Predeterminado: —
Valor de ejemplo""
Ejemplo de expresión BubbleEmpty unless your iOS integration supplies a proven UTI
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
Cancel operation

Sin parámetros de acción

Clear session

Sin parámetros de acción

Estados y eventos

Estados

status · text

Resultado actual de esta acción. Usa el evento de finalización correspondiente antes de guardar el éxito.

is_busy · yes_no

El trabajo sigue en progreso. Espere antes de iniciar otra acción.

native_pending · yes_no

El trabajo sigue en progreso. Espere antes de iniciar otra acción.

operation · text

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

selection_count · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

selected_index · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

file_id · text

Identificador para este elemento o acción. Manténgalo con el registro de la aplicación correspondiente. Use el mismo identificador de solicitud al reintentar un resultado incierto.

local_uri · text

Ubicación del archivo en este dispositivo. Guarde o cargue el archivo por separado si debe mantenerse en línea.

display_name · text

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

mime_type · text

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

mime_source · text

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

size_bytes · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

is_saved_locally · yes_no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

file_ids · text (lista)

Una lista para los archivos seleccionados. Los elementos con el mismo índice en las demás listas de archivos se refieren al mismo archivo.

file_uris · text (lista)

Una lista para los archivos seleccionados. Los elementos con el mismo índice en las demás listas de archivos se refieren al mismo archivo.

file_names · text (lista)

Una lista para los archivos seleccionados. Los elementos con el mismo índice en las demás listas de archivos se refieren al mismo archivo.

file_mime_types · text (lista)

Una lista para los archivos seleccionados. Los elementos con el mismo índice en las demás listas de archivos se refieren al mismo archivo.

file_sizes · number (lista)

Una lista para los archivos seleccionados. Los elementos con el mismo índice en las demás listas de archivos se refieren al mismo archivo.

files_json · text

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

saved_count · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

saved_file_ids · text (lista)

Una lista para los archivos seleccionados. Los elementos con el mismo índice en las demás listas de archivos se refieren al mismo archivo.

saved_file_uris · text (lista)

Una lista para los archivos seleccionados. Los elementos con el mismo índice en las demás listas de archivos se refieren al mismo archivo.

saved_file_names · text (lista)

Una lista para los archivos seleccionados. Los elementos con el mismo índice en las demás listas de archivos se refieren al mismo archivo.

saved_file_mime_types · text (lista)

Una lista para los archivos seleccionados. Los elementos con el mismo índice en las demás listas de archivos se refieren al mismo archivo.

saved_file_sizes · number (lista)

Una lista para los archivos seleccionados. Los elementos con el mismo índice en las demás listas de archivos se refieren al mismo archivo.

saved_files_json · text

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

invalid_saved_count · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

share_status · text

Resultado actual de esta acción. Usa el evento de finalización correspondiente antes de guardar el éxito.

error_code · text

Información de error de la última acción. Muestra un mensaje útil y ofrece el reintento correspondiente.

Eventos

selection_changed

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

files_saved

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

list_loaded

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

file_restored

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

file_deleted

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

share_sheet_closed

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

operation_cancelled

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

files_error

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

Preguntas que hacen los desarrolladores

¿Significa Compartir “enviado”?

No. El SO no proporciona un recibo fiable de éxito del destinatario aquí. Muestre “share sheet closed”.

¿Cómo funciona la suscripción?

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.

Guías relacionadas

Para obtener ayuda, indíquenos qué plugin y dispositivo utiliza, la acción que intentó y lo que ocurrió. Use un ejemplo sin datos personales. Nunca comparta su clave ni archivos privados.