Interface Offline Files.
Interface Offline Files.
← Todas as guías nativas

Xodera Plugins · Bubble Native

Xodera Offline Files Native

Mantén os anexos do informe e os ficheiros escollidos no dispositivo, restáuralos máis tarde e permite ao usuario compartir unha 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 novembro 2026

Exemplos prácticos

Prepare varios anexos locais antes de enviar un informe

Un formulario debe mostrar que ficheiros foron escollidos e permitir ao usuario manter unha copia xestionada antes de calquera envío á nube.

`accepted_mime_types_json = your allowed MIME list`; `multiple = yes`; define `max_files`, `max_file_bytes` e un `document_context` de conta/informe.

Pick files → inspecciona os nomes/tamaños seleccionados → Save selection locally. O seu formulario conserva os IDs de ficheiro resultantes ata que o seu fluxo de traballo separado de Envío suba os ficheiros aprobados.

Utilice `selection_count`, `file_names`, `file_sizes` e `saved_file_ids` para renderizar a lista de revisión. Unha copia xestionada gardada conserva o orixinal do chamador.

Un selector cancelado non é un informe enviado. En `files_error`, manteña os ID locais xa aceptados e mostre `error_code`; nunca cree un anexo na nube a partir dun URI local só.

Os ficheiros permanecen neste dispositivo ata que se compartan ou se carguen por separado.

Conserve a saída dun editor de fotos ou gravador para uso posterior

Un ficheiro local xerado pode estar nunha ubicación temporal; a aplicación necesita unha copia xestionada explícita.

`source_uri = the local output of a separately accepted editor/recorder`; vincule o seu verdadeiro `display_name` e `mime_type`; use o `document_context` do mesmo propietario.

Load local source → inspeccionar metadatos → Save selection locally. Almacene o ID de ficheiro devolto só no dispositivo/contexto coincidente, e logo Restore saved file por ese ID exacto cando sexa necesario.

Consuma `file_id`, `local_uri`, `size_bytes` e `is_saved_locally`; use `file_restored` para distinguir unha restauración completada dunha simple solicitude.

Rexeite un URL remoto HTTP como fonte local. Se a fonte desaparece ou a restauración falla, mostre `error_code` e preserve o rexistro orixinal da aplicación para a recuperación.

Os ficheiros permanecen neste dispositivo ata que se compartan ou se carguen por separado.

Permita que un usuario comparta un recibo local xerado pola aplicación ou unha exportación

A aplicación debe pasar un ficheiro local seleccionado á folla de compartir do dispositivo en vez de inventar un URL público.

`selected_file_id = the exact managed copy chosen from your app’s saved-file list`; o seu nome e MIME describen o ficheiro local real.

List saved files → Restore saved file → Share selected file despois de que o usuario toque en Compartir. Mantén a copia gardada ata que el escolla explicitamente Delete saved copy.

Utilice `share_status` e `share_sheet_closed` para actualizar a interface despois de que a folla se peche. Retén o ID do ficheiro para outra compartición deliberada.

Unha folla de compartir pechada non prova que un correo electrónico/mensaxe foi entregado. Xestione a cancelación e `files_error` sen informar de éxito ao destinatario.

Os ficheiros permanecen neste dispositivo ata que se compartan ou se carguen por separado.

O que funciona agora

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 o fluxo de traballo

Utilice as accións beta dispoñibles a continuación e probe o resultado nos seus dispositivos de destino.

Estes exemplos usan rexistros de aplicación como Lesson, Message e Order. Substitúeaos polos seus propios tipos de datos e nomes de elementos. Os enderezos de medios de exemplo deben substituírse polos seus propios ficheiros.

  1. Define document_context = Current User's unique id, ou un valor estable para a conta e informe. Escolla accepted_mime_types_json, max_files e max_file_bytes.

  2. Execute Pick files, ou use Load local source para un ficheiro lexible producido por Photo Editor ou Recorder. Despois de selection_changed, lea as listas de ficheiros coincidentes; Select picked file escolla un índice.

  3. Execute Save selection locally. Despois de files_saved, garde saved_file_ids no rexistro de anexos locais da súa aplicación. List saved files mostra as copias gardadas; Restore saved file abre o ID gardado seleccionado.

  4. Share selected file abre o menú de compartir do sistema. share_sheet_closed só indica que o menú se pechou. Delete saved copy necesita o ID seleccionado e confirm=yes.

Diagrama do fluxo de traballo — non é unha captura de pantalla da aplicación

Configura unha vez

Cree ou escolla o seu proxecto de aplicación Bubble en BestPlugins → Dashboard → Plugins. Escolla Xodera Offline Files Native, copie a súa clave, despois abra Bubble → Plugins → Xodera Offline Files Native e péguela en licensing_api_key. Guarde unha vez; a seguir utilice as accións a continuación. Cada complemento en cada proxecto ten a súa propia clave.

Utiliza unha aplicación nativa con acceso aos ficheiros escollidos. Define un document_context estable para a conta ou informe para que os seus ficheiros gardados se agrupen correctamente.

Configura unha vez
  1. Cree ou escolla o seu proxecto de aplicación Bubble en BestPlugins → Dashboard → Plugins.
  2. Escolla este complemento e copie a súa clave de proxecto.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Engada o elemento, escolla os datos da súa aplicación e constrúa o fluxo de traballo 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 e subscrició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.

Garde o resultado na súa aplicación

Exemplo LocalAttachment: propietario, document_context, ID do ficheiro gardado, display_name, mime_type e size_bytes. Este ID funciona só no mesmo dispositivo e para a mesma conta ou informe. Para un anexo en liña, sube o ficheiro cun fluxo de traballo separado e garda a referencia do ficheiro en liña devolta.

Fallo, cancelación e recuperación

Un selector cancelado devolve operation_cancelled; non envía o formulario. Mentres native_pending=yes, espera a que o selector de ficheiros ou o menú de compartir se peche antes de abrir outro. Clear session limpa a selección actual pero mantén as copias gardadas. Se falta un ficheiro, permite ao usuario escollilo de novo.

Capacidades e límites

Escolla ficheiros 1–20 de vez. Límite por ficheiro: 1 byte–256 MiB, con un límite inferior se o elixe. Os filtros de tipo de ficheiro non verifican os ficheiros contra virus. Os IDs e rutas de ficheiro do dispositivo non funcionan como ligazóns de descarga na nube. As copias locais non son almacenamento cifrado e poden perderse se se elimina os datos da aplicación.

Configuracións, accións e resultados

Utilice estes nomes en Bubble. As funcionalidades planificadas están marcadas por separado.

Configuracións beta dispoñibles

Configuración do 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

Accións e as súas entradas

Pick filesLoad local sourceSelect picked fileSave selection locallyList saved filesRestore saved fileDelete saved copyShare selected fileCancel operationClear session
Configuración do elemento · 16
source_uritext · Predeterminado: ""
Valor de exemplofile:///app-cache/report.pdf
Exemplo de expresión BubblePhoto Editor's output_uri
Localización de ficheiro legible neste dispositivo, devolta polo seu selector ou outro complemento.
display_nametext · Predeterminado: ""
Valor de exemploreport-photo.jpg
Exemplo de expresión BubbleSelected Attachment's display_name
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
mime_typetext · Predeterminado: ""
Valor de exemploimage/jpeg
Exemplo de expresión BubblePhoto Editor's output_mime
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
document_contexttext · Predeterminado: "default"
Valor de exemplo<current-user-id>
Exemplo de expresión BubbleCurrent User's unique id
Valor estable para esta conta ou rexistro. Use o mesmo valor ao restaurar os seus ficheiros ou borradores gardados.
selected_file_idtext · Predeterminado: ""
Valor de exemplo<returned saved file ID>
Exemplo de expresión BubbleSelected LocalAttachment's local_file_id
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
accepted_mime_types_jsontext · Predeterminado: "[\"*/*\"]"
Valor de exemplo["image/*","application/pdf"]
Exemplo de expresión BubbleReport Settings' accepted_mime_types_json
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
multipleyes_no · Predeterminado: false
Valor de exemployes
Exemplo de expresión BubbleReport Settings' allow_multiple_attachments
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
copy_to_cacheyes_no · Predeterminado: true
Valor de exemployes
Exemplo de expresión BubbleReport Settings' copy_to_cache
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
max_filesnumber · Predeterminado: 20
Valor de exemplo5
Exemplo de expresión BubbleReport Settings' attachment_limit
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
max_file_bytesnumber · Predeterminado: 268435456
Valor de exemplo10485760
Exemplo de expresión BubbleReport Settings' max_attachment_bytes
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
is_activeyes_no · Predeterminado: true
Valor de exemployes
Exemplo de expresión BubbleGuideHost's view_is_active (your yes/no custom state)
Establece sí mentres esta vista está aberta. Establece non ao saír, para que a reprodución ou o traballo actual poidan detenerse.
disabledyes_no · Predeterminado: false
Valor de exemplono
Exemplo de expresión BubbleGuideHost's is_busy (your yes/no custom state)
Desactiva o elemento mentres a túa aplicación está ocupada ou esta acción non está dispoñible.
show_controlsyes_no · Predeterminado: true
Valor de exemployes
Exemplo de expresión BubbleApp Settings' show_editor_controls
Mostrar ou agochar os controis incorporados.
languagetext · Predeterminado: "auto"
Valor de exemplouk
Exemplo de expresión BubbleCurrent User's preferred_language
Establece language=auto para seguir un dispositivo ou idioma de navegador compatible. Introduce un código de idioma compatible para elixilo explicitamente.
ui_text_jsontext · Predeterminado: ""
Valor de exemplo{}
Exemplo de expresión BubbleApp Settings' player_labels_json (supported keys only)
JSON opcional con etiquetas de botón compatibles. Déixao baleiro para usar o texto incorporado.
titletext · Predeterminado: ""
Valor de exemploLesson 4 — review
Exemplo de expresión BubbleSelected Lesson's name
Texto visible da aplicación; baleiro usa a copia localizada incorporada onde se admita. Sen credenciais.
Accións e as súas entradas · 10
Pick files

Sen parámetros de acción

Load local source
source_uritext · Predeterminado: —
Valor de exemplofile:///app-cache/report.pdf
Exemplo de expresión BubblePhoto Editor's output_uri
Localización de ficheiro legible neste dispositivo, devolta polo seu selector ou outro complemento.
display_nametext · Predeterminado: —
Valor de exemploreport-photo.jpg
Exemplo de expresión BubbleSelected Attachment's display_name
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
mime_typetext · Predeterminado: —
Valor de exemploimage/jpeg
Exemplo de expresión BubblePhoto Editor's output_mime
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Select picked file
indexnumber · Predeterminado: —
Valor de exemplo0
Exemplo de expresión BubbleSelected row's current_source_index
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Save selection locally

Sen parámetros de acción

List saved files

Sen parámetros de acción

Restore saved file
file_idtext · Predeterminado: —
Valor de exemplo<returned saved file ID>
Exemplo de expresión BubbleSelected LocalAttachment's local_file_id
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Delete saved copy
file_idtext · Predeterminado: —
Valor de exemplo<returned saved file ID>
Exemplo de expresión BubbleSelected LocalAttachment's local_file_id
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
confirmyes_no · Predeterminado: —
Valor de exemployes — explicit confirmation only
Exemplo de expresión BubbleConfirm Checkbox is checked
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Share selected file
dialog_titletext · Predeterminado: —
Valor de exemploShare attachment
Exemplo de expresión BubbleSelected Report's share_title
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
utitext · Predeterminado: —
Valor de exemplo""
Exemplo de expresión BubbleEmpty unless your iOS integration supplies a proven UTI
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Cancel operation

Sen parámetros de acción

Clear session

Sen parámetros de acción

Estados e eventos

Estados

status · text

Resultado actual desta acción. Usa o evento de finalización coincidente antes de gardar o éxito.

is_busy · yes_no

O traballo aínda está en progreso. Agarde antes de iniciar outra acción.

native_pending · yes_no

O traballo aínda está en progreso. Agarde antes de iniciar outra acción.

operation · text

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

selection_count · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

selected_index · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

file_id · text

Identificador para este elemento ou acción. Mantéña co rexistro da aplicación correspondente. Use o mesmo identificador de solicitude ao volver a intentar un resultado incerto.

local_uri · text

Localización do ficheiro neste dispositivo. Garde ou cargue o ficheiro por separado se debe permanecer en liña.

display_name · text

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

mime_type · text

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

mime_source · text

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

size_bytes · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

is_saved_locally · yes_no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

file_ids · text (lista)

Unha lista dos ficheiros seleccionados. Os elementos co mesmo índice nas outras listas de ficheiros refírense ao mesmo ficheiro.

file_uris · text (lista)

Unha lista dos ficheiros seleccionados. Os elementos co mesmo índice nas outras listas de ficheiros refírense ao mesmo ficheiro.

file_names · text (lista)

Unha lista dos ficheiros seleccionados. Os elementos co mesmo índice nas outras listas de ficheiros refírense ao mesmo ficheiro.

file_mime_types · text (lista)

Unha lista dos ficheiros seleccionados. Os elementos co mesmo índice nas outras listas de ficheiros refírense ao mesmo ficheiro.

file_sizes · number (lista)

Unha lista dos ficheiros seleccionados. Os elementos co mesmo índice nas outras listas de ficheiros refírense ao mesmo ficheiro.

files_json · text

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

saved_count · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

saved_file_ids · text (lista)

Unha lista dos ficheiros seleccionados. Os elementos co mesmo índice nas outras listas de ficheiros refírense ao mesmo ficheiro.

saved_file_uris · text (lista)

Unha lista dos ficheiros seleccionados. Os elementos co mesmo índice nas outras listas de ficheiros refírense ao mesmo ficheiro.

saved_file_names · text (lista)

Unha lista dos ficheiros seleccionados. Os elementos co mesmo índice nas outras listas de ficheiros refírense ao mesmo ficheiro.

saved_file_mime_types · text (lista)

Unha lista dos ficheiros seleccionados. Os elementos co mesmo índice nas outras listas de ficheiros refírense ao mesmo ficheiro.

saved_file_sizes · number (lista)

Unha lista dos ficheiros seleccionados. Os elementos co mesmo índice nas outras listas de ficheiros refírense ao mesmo ficheiro.

saved_files_json · text

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

invalid_saved_count · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

share_status · text

Resultado actual desta acción. Usa o evento de finalización coincidente antes de gardar o éxito.

error_code · text

Información de erro da última acción. Mostra unha mensaxe útil e ofrece o reintento correspondente.

Eventos

selection_changed

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

files_saved

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

list_loaded

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

file_restored

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

file_deleted

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

share_sheet_closed

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

operation_cancelled

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

files_error

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

Preguntas que os desenvolvedores fan

Share significa “enviado”?

Non. O SO non fornece un recibo fiable de éxito do destinatario aquí. Mostra “share sheet closed”.

Como funciona a subscrició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 obter axuda, indícanos que complemento e dispositivo utilizas, a acción que intentaches e o que sucedeu. Usa un exemplo sen datos persoais. Nunca compartas a túa clave ou ficheiros privados.