
Xodera Plugins · Bubble Native
Xodera Offline Files Native
Mantenha os anexos do relatório e os arquivos selecionados no dispositivo, restaure-os posteriormente e permita que o usuário compartilhe uma cópia selecionada.
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.
Documentação revisada 6 novembro 2026
Exemplos práticos
Prepare vários anexos locais antes de enviar um relatório
Um formulário precisa mostrar quais arquivos foram selecionados e permitir que o usuário mantenha uma cópia gerenciada antes de qualquer envio para a nuvem.
`accepted_mime_types_json = your allowed MIME list`; `multiple = yes`; definir `max_files`, `max_file_bytes` e uma conta/relatório `document_context`.
Pick files → inspecionar os nomes/tamanhos selecionados → Save selection locally. Seu formulário mantém os IDs de arquivo resultantes até que seu fluxo de trabalho de Enviar separado faça upload dos arquivos aprovados.
Use `selection_count`, `file_names`, `file_sizes` e `saved_file_ids` para renderizar a lista de revisão. Uma cópia gerenciada salva preserva o original do chamador.
Um seletor cancelado não é um relatório enviado. Em `files_error`, mantenha os IDs locais já aceitos e mostre `error_code`; nunca crie um anexo na nuvem a partir de um URI local sozinho.
Os arquivos permanecem neste dispositivo até serem compartilhados ou enviados separadamente.
Mantenha a saída de um editor de fotos ou gravador para uso posterior
Um arquivo local gerado pode estar em um local temporário; o aplicativo precisa de uma cópia gerenciada explícita.
`source_uri = the local output of a separately accepted editor/recorder`; vincular seu `display_name` real e `mime_type`; usar o `document_context` do mesmo proprietário.
Load local source → inspecionar metadados → Save selection locally. Armazene o ID de arquivo retornado apenas no dispositivo/contexto correspondente, então Restore saved file por esse ID exato quando necessário.
Consuma `file_id`, `local_uri`, `size_bytes` e `is_saved_locally`; use `file_restored` para distinguir uma restauração concluída de apenas uma solicitação.
Rejeite um URL remoto HTTP como fonte local. Se uma fonte desaparecer ou a restauração falhar, mostre `error_code` e preserve o registro original do aplicativo para recuperação.
Os arquivos permanecem neste dispositivo até serem compartilhados ou enviados separadamente.
Permita que o usuário compartilhe um recibo local gerado pelo aplicativo ou exporte
O aplicativo deve entregar um arquivo local selecionado à folha de compartilhamento do dispositivo em vez de criar uma URL pública.
`selected_file_id = the exact managed copy chosen from your app’s saved-file list`; seu nome e MIME descrevem o arquivo local real.
List saved files → Restore saved file → Share selected file após o usuário tocar em Compartilhar. Mantenha a cópia salva até que ele escolha explicitamente Delete saved copy.
Use `share_status` e `share_sheet_closed` para atualizar a UI após o fechamento da folha. Retenha o ID do arquivo para outro compartilhamento deliberado.
Uma folha de compartilhamento fechada não prova que um e‑mail/mensagem foi entregue. Trate o cancelamento e `files_error` sem relatar sucesso ao destinatário.
Os arquivos permanecem neste dispositivo até serem compartilhados ou enviados separadamente.
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.
Crie o fluxo de trabalho
Use as ações beta disponíveis abaixo e teste o resultado em seus dispositivos-alvo.
Estes exemplos utilizam registros de aplicativo como Lesson, Message e Order. Substitua-os pelos seus próprios tipos de dados e nomes de elementos. Endereços de mídia de exemplo devem ser substituídos pelos seus próprios arquivos.
Defina document_context = Current User's unique id, ou um valor estável para a conta e relatório. Escolha accepted_mime_types_json, max_files e max_file_bytes.
Execute Pick files, ou use Load local source para um arquivo legível produzido pelo Editor de Fotos ou Gravador. Após selection_changed, leia as listas de arquivos correspondentes; Select picked file escolhe um índice.
Execute Save selection locally. Após files_saved, mantenha saved_file_ids no registro de anexos local do seu aplicativo. List saved files exibe cópias salvas; Restore saved file abre o ID salvo selecionado.
Share selected file abre o menu de compartilhamento do sistema. share_sheet_closed apenas indica que o menu foi fechado. Delete saved copy requer o ID selecionado e confirm=yes.
Configure uma vez
Crie ou escolha seu projeto de aplicativo Bubble em BestPlugins → Dashboard → Plugins. Escolha Xodera Offline Files Native, copie sua chave, então abra Bubble → Plugins → Xodera Offline Files Native e cole-a em licensing_api_key. Salve uma vez; depois use as ações abaixo. Cada plugin em cada projeto tem sua própria chave.
Use um aplicativo nativo com acesso aos arquivos selecionados. Defina um document_context estável para a conta ou relatório para que seus arquivos salvos permaneçam agrupados corretamente.
Configure uma vez
- Crie ou escolha seu projeto de aplicativo Bubble em BestPlugins → Dashboard → Plugins.
- Escolha este plugin e copie sua chave de projeto.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Adicione o elemento, escolha os dados do seu aplicativo e construa o fluxo de trabalho abaixo.
- 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.
Instalação e assinatura
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.
Salve o resultado no seu aplicativo
Exemplo LocalAttachment: proprietário, document_context, ID do arquivo salvo, display_name, mime_type e size_bytes. Este ID funciona apenas no mesmo dispositivo e para a mesma conta ou relatório. Para um anexo online, faça o upload do arquivo com um fluxo de trabalho separado e salve a referência de arquivo online retornada.
Falha, cancelamento e recuperação
Um seletor cancelado retorna operation_cancelled; ele não envia o formulário. Enquanto native_pending=yes, aguarde o seletor de arquivos ou o menu de compartilhamento fechar antes de abrir outro. Clear session limpa a seleção atual, mas mantém as cópias salvas. Se um arquivo estiver ausente, permita que o usuário o escolha novamente.
Capacidades e limites
Escolha arquivos 1–20 de uma vez. Limite por arquivo: 1 byte–256 MiB, com limite inferior se você escolher. Filtros de tipo de arquivo não verificam vírus. IDs e caminhos de arquivos do dispositivo não funcionam como links de download na nuvem. Cópias locais não são armazenamento criptografado e podem ser perdidas se os dados do aplicativo forem removidos.
Configurações, ações e resultados
Use esses nomes em Bubble. Recursos planejados são marcados separadamente.
Configurações beta disponíveis
Configurações 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 · textEstados
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 · textEventos
selection_changedfiles_savedlist_loadedfile_restoredfile_deletedshare_sheet_closedoperation_cancelledfiles_errorAções e suas entradas
Pick filesLoad local sourceSelect picked fileSave selection locallyList saved filesRestore saved fileDelete saved copyShare selected fileCancel operationClear sessionConfigurações do elemento · 16
source_uritext · Padrão: ""- Valor de exemplo
file:///app-cache/report.pdf - Exemplo de expressão Bubble
Photo Editor's output_uri - Localização de arquivo legível neste dispositivo, retornada pelo seu seletor ou outro plugin.
display_nametext · Padrão: ""- Valor de exemplo
report-photo.jpg - Exemplo de expressão Bubble
Selected Attachment's display_name - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
mime_typetext · Padrão: ""- Valor de exemplo
image/jpeg - Exemplo de expressão Bubble
Photo Editor's output_mime - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
document_contexttext · Padrão: "default"- Valor de exemplo
<current-user-id> - Exemplo de expressão Bubble
Current User's unique id - Valor estável para esta conta ou registro. Use o mesmo valor ao restaurar seus arquivos ou rascunhos salvos.
selected_file_idtext · Padrão: ""- Valor de exemplo
<returned saved file ID> - Exemplo de expressão Bubble
Selected LocalAttachment's local_file_id - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
accepted_mime_types_jsontext · Padrão: "[\"*/*\"]"- Valor de exemplo
["image/*","application/pdf"] - Exemplo de expressão Bubble
Report Settings' accepted_mime_types_json - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
multipleyes_no · Padrão: false- Valor de exemplo
yes - Exemplo de expressão Bubble
Report Settings' allow_multiple_attachments - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
copy_to_cacheyes_no · Padrão: true- Valor de exemplo
yes - Exemplo de expressão Bubble
Report Settings' copy_to_cache - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
max_filesnumber · Padrão: 20- Valor de exemplo
5 - Exemplo de expressão Bubble
Report Settings' attachment_limit - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
max_file_bytesnumber · Padrão: 268435456- Valor de exemplo
10485760 - Exemplo de expressão Bubble
Report Settings' max_attachment_bytes - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
is_activeyes_no · Padrão: true- Valor de exemplo
yes - Exemplo de expressão Bubble
GuideHost's view_is_active (your yes/no custom state) - Defina sim enquanto esta visualização estiver aberta. Defina não ao sair, para que a reprodução ou o trabalho atual possam parar.
disabledyes_no · Padrão: false- Valor de exemplo
no - Exemplo de expressão Bubble
GuideHost's is_busy (your yes/no custom state) - Desative o elemento enquanto seu aplicativo estiver ocupado ou esta ação estiver indisponível.
show_controlsyes_no · Padrão: true- Valor de exemplo
yes - Exemplo de expressão Bubble
App Settings' show_editor_controls - Mostrar ou ocultar os controles incorporados.
languagetext · Padrão: "auto"- Valor de exemplo
uk - Exemplo de expressão Bubble
Current User's preferred_language - Defina language=auto para seguir um idioma de dispositivo ou navegador suportado. Insira um código de idioma suportado para escolhê-lo explicitamente.
ui_text_jsontext · Padrão: ""- Valor de exemplo
{} - Exemplo de expressão Bubble
App Settings' player_labels_json (supported keys only) - JSON opcional com rótulos de botão suportados. Deixe vazio para usar o texto incorporado.
titletext · Padrão: ""- Valor de exemplo
Lesson 4 — review - Exemplo de expressão Bubble
Selected Lesson's name - Texto visível do aplicativo; vazio usa a cópia localizada incorporada onde suportado. Sem credenciais.
Ações e suas entradas · 10
Pick files
Sem parâmetros de ação
Load local source
source_uritext · Padrão: —- Valor de exemplo
file:///app-cache/report.pdf - Exemplo de expressão Bubble
Photo Editor's output_uri - Localização de arquivo legível neste dispositivo, retornada pelo seu seletor ou outro plugin.
display_nametext · Padrão: —- Valor de exemplo
report-photo.jpg - Exemplo de expressão Bubble
Selected Attachment's display_name - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
mime_typetext · Padrão: —- Valor de exemplo
image/jpeg - Exemplo de expressão Bubble
Photo Editor's output_mime - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Select picked file
indexnumber · Padrão: —- Valor de exemplo
0 - Exemplo de expressão Bubble
Selected row's current_source_index - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Save selection locally
Sem parâmetros de ação
List saved files
Sem parâmetros de ação
Restore saved file
file_idtext · Padrão: —- Valor de exemplo
<returned saved file ID> - Exemplo de expressão Bubble
Selected LocalAttachment's local_file_id - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Delete saved copy
file_idtext · Padrão: —- Valor de exemplo
<returned saved file ID> - Exemplo de expressão Bubble
Selected LocalAttachment's local_file_id - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
confirmyes_no · Padrão: —- Valor de exemplo
yes — explicit confirmation only - Exemplo de expressão Bubble
Confirm Checkbox is checked - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Share selected file
dialog_titletext · Padrão: —- Valor de exemplo
Share attachment - Exemplo de expressão Bubble
Selected Report's share_title - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
utitext · Padrão: —- Valor de exemplo
"" - Exemplo de expressão Bubble
Empty unless your iOS integration supplies a proven UTI - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Cancel operation
Sem parâmetros de ação
Clear session
Sem parâmetros de ação
Estados e eventos
Estados
status · textResultado atual desta ação. Use o evento de conclusão correspondente antes de salvar o sucesso.
is_busy · yes_noO trabalho ainda está em andamento. Aguarde antes de iniciar outra ação.
native_pending · yes_noO trabalho ainda está em andamento. Aguarde antes de iniciar outra ação.
operation · textValor atual do item selecionado. Leia-o após o evento relacionado.
selection_count · numberValor atual do item selecionado. Leia-o após o evento relacionado.
selected_index · numberValor atual do item selecionado. Leia-o após o evento relacionado.
file_id · textIdentificador para este item ou ação. Mantenha-o com o registro de aplicativo correspondente. Use o mesmo identificador de solicitação ao tentar novamente um resultado incerto.
local_uri · textLocalização do arquivo neste dispositivo. Salve ou faça upload do arquivo separadamente se precisar mantê‑lo online.
display_name · textValor atual do item selecionado. Leia-o após o evento relacionado.
mime_type · textValor atual do item selecionado. Leia-o após o evento relacionado.
mime_source · textValor atual do item selecionado. Leia-o após o evento relacionado.
size_bytes · numberValor atual do item selecionado. Leia-o após o evento relacionado.
is_saved_locally · yes_noValor atual do item selecionado. Leia-o após o evento relacionado.
file_ids · text (lista)Uma lista para os arquivos selecionados. Itens no mesmo índice nas outras listas de arquivos referem‑se ao mesmo arquivo.
file_uris · text (lista)Uma lista para os arquivos selecionados. Itens no mesmo índice nas outras listas de arquivos referem‑se ao mesmo arquivo.
file_names · text (lista)Uma lista para os arquivos selecionados. Itens no mesmo índice nas outras listas de arquivos referem‑se ao mesmo arquivo.
file_mime_types · text (lista)Uma lista para os arquivos selecionados. Itens no mesmo índice nas outras listas de arquivos referem‑se ao mesmo arquivo.
file_sizes · number (lista)Uma lista para os arquivos selecionados. Itens no mesmo índice nas outras listas de arquivos referem‑se ao mesmo arquivo.
files_json · textValor atual do item selecionado. Leia-o após o evento relacionado.
saved_count · numberValor atual do item selecionado. Leia-o após o evento relacionado.
saved_file_ids · text (lista)Uma lista para os arquivos selecionados. Itens no mesmo índice nas outras listas de arquivos referem‑se ao mesmo arquivo.
saved_file_uris · text (lista)Uma lista para os arquivos selecionados. Itens no mesmo índice nas outras listas de arquivos referem‑se ao mesmo arquivo.
saved_file_names · text (lista)Uma lista para os arquivos selecionados. Itens no mesmo índice nas outras listas de arquivos referem‑se ao mesmo arquivo.
saved_file_mime_types · text (lista)Uma lista para os arquivos selecionados. Itens no mesmo índice nas outras listas de arquivos referem‑se ao mesmo arquivo.
saved_file_sizes · number (lista)Uma lista para os arquivos selecionados. Itens no mesmo índice nas outras listas de arquivos referem‑se ao mesmo arquivo.
saved_files_json · textValor atual do item selecionado. Leia-o após o evento relacionado.
invalid_saved_count · numberValor atual do item selecionado. Leia-o após o evento relacionado.
share_status · textResultado atual desta ação. Use o evento de conclusão correspondente antes de salvar o sucesso.
error_code · textInformações de erro da última ação. Exiba uma mensagem útil e ofereça a tentativa de novo relevante.
Eventos
selection_changedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
files_savedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
list_loadedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
file_restoredQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
file_deletedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
share_sheet_closedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
operation_cancelledQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
files_errorQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
Perguntas que os desenvolvedores fazem
Compartilhar significa “enviado”?
Não. O SO não fornece um comprovante confiável de sucesso do destinatário aqui. Exiba “share sheet closed”.
Como funciona a assinatura?
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.
Guias relacionados
Para obter ajuda, informe qual plugin e dispositivo você usa, a ação que tentou e o que aconteceu. Use um exemplo sem dados pessoais. Nunca compartilhe sua chave ou arquivos privados.