
Xodera Plugins · Bubble Native
Xodera Offline Files Native
Przechowuj załączniki raportu i wybrane pliki na urządzeniu, przywróć je później i umożliw użytkownikowi udostępnienie wybranej kopii.
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.
Dokumentacja przeglądnięta 6 listopad 2026
Praktyczne przykłady
Przygotuj kilka lokalnych załączników przed wysłaniem raportu
Formularz musi wyświetlać, które pliki zostały wybrane, i pozwolić użytkownikowi zachować zarządzaną kopię przed jakimkolwiek przesłaniem do chmury.
`accepted_mime_types_json = your allowed MIME list`; `multiple = yes`; ustaw `max_files`, `max_file_bytes` i konto/raport `document_context`.
Pick files → sprawdź wybrane nazwy/rozmiary → Save selection locally. Formularz zachowuje uzyskane identyfikatory plików, aż oddzielny proces Zatwierdź wyśle zatwierdzone pliki.
Użyj `selection_count`, `file_names`, `file_sizes` i `saved_file_ids` do wyświetlenia listy recenzji. Zapisana zarządzana kopia zachowuje oryginał wywołującego.
Anulowany selektor nie jest zgłoszonym raportem. Na `files_error` zachowaj już zaakceptowane lokalne identyfikatory i pokaż `error_code`; nigdy nie twórz załącznika w chmurze wyłącznie z lokalnego URI.
Pliki pozostają na tym urządzeniu, aż zostaną udostępnione lub przesłane osobno.
Zachowaj wynik edytora zdjęć lub rejestratora do późniejszego użycia
Wygenerowany plik lokalny może znajdować się w tymczasowej lokalizacji; aplikacja potrzebuje wyraźnej zarządzanej kopii.
`source_uri = the local output of a separately accepted editor/recorder`; powiąż jego rzeczywisty `display_name` i `mime_type`; użyj tego samego właściciela `document_context`.
Load local source → sprawdź metadane → Save selection locally. Przechowuj zwrócony identyfikator pliku tylko w odpowiednim urządzeniu/kontekście, a następnie Restore saved file przy użyciu tego dokładnego ID w razie potrzeby.
Użyj `file_id`, `local_uri`, `size_bytes` i `is_saved_locally`; użyj `file_restored`, aby odróżnić zakończone przywrócenie od samego żądania.
Odrzuć zdalny adres URL HTTP jako źródło lokalne. Jeśli źródło zniknie lub przywracanie się nie powiedzie, pokaż `error_code` i zachowaj oryginalny rekord aplikacji do odzyskania.
Pliki pozostają na tym urządzeniu, aż zostaną udostępnione lub przesłane osobno.
Pozwól użytkownikowi udostępnić lokalny paragon lub eksport wygenerowany przez aplikację
Aplikacja powinna przekazać wybrany lokalny plik do systemowego okna udostępniania, zamiast tworzyć publiczny adres URL.
`selected_file_id = the exact managed copy chosen from your app’s saved-file list`; jego nazwa i MIME opisują rzeczywisty plik lokalny.
List saved files → Restore saved file → Share selected file po naciśnięciu przycisku Udostępnij przez użytkownika. Zachowaj zapisaną kopię, aż wyraźnie wybiorą Delete saved copy.
Użyj `share_status` i `share_sheet_closed`, aby zaktualizować interfejs po zamknięciu okna. Zachowaj identyfikator pliku do kolejnego celowego udostępnienia.
Zamknięte okno udostępniania nie jest dowodem na dostarczenie e‑maila/wiadomości. Obsłuż anulowanie i `files_error` bez zgłaszania sukcesu odbiorcy.
Pliki pozostają na tym urządzeniu, aż zostaną udostępnione lub przesłane osobno.
Co działa teraz
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.
Zbuduj przepływ pracy
Użyj dostępnych poniżej akcji beta i przetestuj wynik na docelowych urządzeniach.
Te przykłady używają rekordów aplikacji, takich jak Lesson, Message i Order. Zastąp je własnymi typami danych i nazwami elementów. Przykładowe adresy mediów należy zastąpić własnymi plikami.
Ustaw document_context = Current User's unique id lub stabilną wartość dla konta i raportu. Wybierz accepted_mime_types_json, max_files i max_file_bytes.
Uruchom Pick files lub użyj Load local source do odczytu pliku wygenerowanego przez Edytor zdjęć lub Rejestrator. Po selection_changed odczytaj pasujące listy plików; Select picked file wybiera indeks.
Uruchom Save selection locally. Po files_saved zachowaj saved_file_ids w lokalnym rejestrze załączników aplikacji. List saved files wyświetla zapisane kopie; Restore saved file otwiera wybrany zapisany identyfikator.
Share selected file otwiera systemowe menu udostępniania. share_sheet_closed oznacza jedynie, że menu zostało zamknięte. Delete saved copy wymaga wybranego identyfikatora oraz confirm=yes.
Skonfiguruj raz
Utwórz lub wybierz swój projekt aplikacji Bubble w BestPlugins → Dashboard → Plugins. Wybierz Xodera Offline Files Native, skopiuj jego klucz, a następnie otwórz Bubble → Plugins → Xodera Offline Files Native i wklej go do licensing_api_key. Zapisz raz; potem użyj poniższych akcji. Każda wtyczka w każdym projekcie ma własny klucz.
Użyj natywnej aplikacji z dostępem do wybranych plików. Ustaw stabilny document_context dla konta lub raportu, aby zapisane pliki były prawidłowo grupowane.
Skonfiguruj raz
- Utwórz lub wybierz swój projekt aplikacji Bubble w BestPlugins → Dashboard → Plugins.
- Wybierz tę wtyczkę i skopiuj jej klucz projektu.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Dodaj element, wybierz dane aplikacji i zbuduj poniższy przepływ pracy.
- 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.
Instalacja i subskrypcja
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.
Zapisz wynik w swojej aplikacji
Przykład LocalAttachment: właściciel, document_context, zapisany identyfikator pliku, display_name, mime_type i size_bytes. Ten identyfikator działa tylko na tym samym urządzeniu i dla tego samego konta lub raportu. W przypadku załącznika online, prześlij plik osobnym procesem i zapisz zwrócony odnośnik do pliku online.
Błąd, anulowanie i odzyskiwanie
Anulowany selektor zwraca operation_cancelled; nie wysyła formularza. Podczas native_pending=yes poczekaj, aż selektor plików lub menu udostępniania się zamknie, zanim otworzysz kolejny. Clear session czyści bieżący wybór, ale zachowuje zapisane kopie. Jeśli plik jest brakujący, pozwól użytkownikowi wybrać go ponownie.
Możliwości i ograniczenia
Wybierz jednocześnie pliki 1–20. Limit na plik: 1 bajt‑256 MiB, z niższym limitem, jeśli wybierzesz. Filtry typów plików nie sprawdzają plików pod kątem wirusów. Identyfikatory i ścieżki plików urządzenia nie działają jako linki do pobrania z chmury. Lokalne kopie nie są zaszyfrowanym magazynem i mogą zostać utracone, jeśli dane aplikacji zostaną usunięte.
Ustawienia, akcje i wyniki
Użyj tych nazw w Bubble. Planowane funkcje są oznaczone osobno.
Dostępne ustawienia beta
Ustawienia elementu
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 · textStany
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 · textZdarzenia
selection_changedfiles_savedlist_loadedfile_restoredfile_deletedshare_sheet_closedoperation_cancelledfiles_errorAkcje i ich wejścia
Pick filesLoad local sourceSelect picked fileSave selection locallyList saved filesRestore saved fileDelete saved copyShare selected fileCancel operationClear sessionUstawienia elementu · 16
source_uritext · Domyślne: ""- Przykładowa wartość
file:///app-cache/report.pdf - Przykładowe wyrażenie Bubble
Photo Editor's output_uri - Czytelna lokalizacja pliku na tym urządzeniu, zwrócona przez Twój selektor lub inny wtyczkę.
display_nametext · Domyślne: ""- Przykładowa wartość
report-photo.jpg - Przykładowe wyrażenie Bubble
Selected Attachment's display_name - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
mime_typetext · Domyślne: ""- Przykładowa wartość
image/jpeg - Przykładowe wyrażenie Bubble
Photo Editor's output_mime - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
document_contexttext · Domyślne: "default"- Przykładowa wartość
<current-user-id> - Przykładowe wyrażenie Bubble
Current User's unique id - Stała wartość dla tego konta lub rekordu. Użyj tej samej wartości przy przywracaniu zapisanych plików lub wersji roboczych.
selected_file_idtext · Domyślne: ""- Przykładowa wartość
<returned saved file ID> - Przykładowe wyrażenie Bubble
Selected LocalAttachment's local_file_id - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
accepted_mime_types_jsontext · Domyślne: "[\"*/*\"]"- Przykładowa wartość
["image/*","application/pdf"] - Przykładowe wyrażenie Bubble
Report Settings' accepted_mime_types_json - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
multipleyes_no · Domyślne: false- Przykładowa wartość
yes - Przykładowe wyrażenie Bubble
Report Settings' allow_multiple_attachments - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
copy_to_cacheyes_no · Domyślne: true- Przykładowa wartość
yes - Przykładowe wyrażenie Bubble
Report Settings' copy_to_cache - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
max_filesnumber · Domyślne: 20- Przykładowa wartość
5 - Przykładowe wyrażenie Bubble
Report Settings' attachment_limit - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
max_file_bytesnumber · Domyślne: 268435456- Przykładowa wartość
10485760 - Przykładowe wyrażenie Bubble
Report Settings' max_attachment_bytes - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
is_activeyes_no · Domyślne: true- Przykładowa wartość
yes - Przykładowe wyrażenie Bubble
GuideHost's view_is_active (your yes/no custom state) - Ustaw tak, gdy ten widok jest otwarty. Ustaw nie przy zamykaniu, aby odtwarzanie lub bieżąca praca mogły się zatrzymać.
disabledyes_no · Domyślne: false- Przykładowa wartość
no - Przykładowe wyrażenie Bubble
GuideHost's is_busy (your yes/no custom state) - Wyłącz element, gdy aplikacja jest zajęta lub akcja jest niedostępna.
show_controlsyes_no · Domyślne: true- Przykładowa wartość
yes - Przykładowe wyrażenie Bubble
App Settings' show_editor_controls - Pokaż lub ukryj wbudowane kontrolki.
languagetext · Domyślne: "auto"- Przykładowa wartość
uk - Przykładowe wyrażenie Bubble
Current User's preferred_language - Ustaw language=auto, aby podążał za obsługiwanym językiem urządzenia lub przeglądarki. Wprowadź obsługiwany kod języka, aby wybrać go explicite.
ui_text_jsontext · Domyślne: ""- Przykładowa wartość
{} - Przykładowe wyrażenie Bubble
App Settings' player_labels_json (supported keys only) - Opcjonalny JSON z obsługiwanymi etykietami przycisków. Pozostaw puste, aby użyć wbudowanego tekstu.
titletext · Domyślne: ""- Przykładowa wartość
Lesson 4 — review - Przykładowe wyrażenie Bubble
Selected Lesson's name - Widoczny tekst aplikacji; puste używa wbudowanej zlokalizowanej wersji, jeśli jest dostępna. Brak danych uwierzytelniających.
Akcje i ich wejścia · 10
Pick files
Brak parametrów akcji
Load local source
source_uritext · Domyślne: —- Przykładowa wartość
file:///app-cache/report.pdf - Przykładowe wyrażenie Bubble
Photo Editor's output_uri - Czytelna lokalizacja pliku na tym urządzeniu, zwrócona przez Twój selektor lub inny wtyczkę.
display_nametext · Domyślne: —- Przykładowa wartość
report-photo.jpg - Przykładowe wyrażenie Bubble
Selected Attachment's display_name - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
mime_typetext · Domyślne: —- Przykładowa wartość
image/jpeg - Przykładowe wyrażenie Bubble
Photo Editor's output_mime - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Select picked file
indexnumber · Domyślne: —- Przykładowa wartość
0 - Przykładowe wyrażenie Bubble
Selected row's current_source_index - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Save selection locally
Brak parametrów akcji
List saved files
Brak parametrów akcji
Restore saved file
file_idtext · Domyślne: —- Przykładowa wartość
<returned saved file ID> - Przykładowe wyrażenie Bubble
Selected LocalAttachment's local_file_id - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Delete saved copy
file_idtext · Domyślne: —- Przykładowa wartość
<returned saved file ID> - Przykładowe wyrażenie Bubble
Selected LocalAttachment's local_file_id - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
confirmyes_no · Domyślne: —- Przykładowa wartość
yes — explicit confirmation only - Przykładowe wyrażenie Bubble
Confirm Checkbox is checked - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Share selected file
dialog_titletext · Domyślne: —- Przykładowa wartość
Share attachment - Przykładowe wyrażenie Bubble
Selected Report's share_title - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
utitext · Domyślne: —- Przykładowa wartość
"" - Przykładowe wyrażenie Bubble
Empty unless your iOS integration supplies a proven UTI - Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Cancel operation
Brak parametrów akcji
Clear session
Brak parametrów akcji
Stany i zdarzenia
Stany
status · textAktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu.
is_busy · yes_noPraca wciąż trwa. Poczekaj przed rozpoczęciem kolejnej akcji.
native_pending · yes_noPraca wciąż trwa. Poczekaj przed rozpoczęciem kolejnej akcji.
operation · textAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
selection_count · numberAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
selected_index · numberAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
file_id · textIdentyfikator tego elementu lub akcji. Przechowuj go wraz z odpowiadającym rekordem aplikacji. Użyj tego samego identyfikatora żądania przy ponawianiu niepewnego wyniku.
local_uri · textLokalizacja pliku na tym urządzeniu. Zapisz lub prześlij plik osobno, jeśli musi być przechowywany online.
display_name · textAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
mime_type · textAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
mime_source · textAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
size_bytes · numberAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
is_saved_locally · yes_noAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
file_ids · text (lista)Lista wybranych plików. Elementy o tym samym indeksie w pozostałych listach plików odnoszą się do tego samego pliku.
file_uris · text (lista)Lista wybranych plików. Elementy o tym samym indeksie w pozostałych listach plików odnoszą się do tego samego pliku.
file_names · text (lista)Lista wybranych plików. Elementy o tym samym indeksie w pozostałych listach plików odnoszą się do tego samego pliku.
file_mime_types · text (lista)Lista wybranych plików. Elementy o tym samym indeksie w pozostałych listach plików odnoszą się do tego samego pliku.
file_sizes · number (lista)Lista wybranych plików. Elementy o tym samym indeksie w pozostałych listach plików odnoszą się do tego samego pliku.
files_json · textAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
saved_count · numberAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
saved_file_ids · text (lista)Lista wybranych plików. Elementy o tym samym indeksie w pozostałych listach plików odnoszą się do tego samego pliku.
saved_file_uris · text (lista)Lista wybranych plików. Elementy o tym samym indeksie w pozostałych listach plików odnoszą się do tego samego pliku.
saved_file_names · text (lista)Lista wybranych plików. Elementy o tym samym indeksie w pozostałych listach plików odnoszą się do tego samego pliku.
saved_file_mime_types · text (lista)Lista wybranych plików. Elementy o tym samym indeksie w pozostałych listach plików odnoszą się do tego samego pliku.
saved_file_sizes · number (lista)Lista wybranych plików. Elementy o tym samym indeksie w pozostałych listach plików odnoszą się do tego samego pliku.
saved_files_json · textAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
invalid_saved_count · numberAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
share_status · textAktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu.
error_code · textInformacje o błędzie ostatniej akcji. Wyświetl pomocną wiadomość i zaoferuj odpowiednią ponowną próbę.
Zdarzenia
selection_changedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
files_savedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
list_loadedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
file_restoredGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
file_deletedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
share_sheet_closedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
operation_cancelledGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
files_errorGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
Pytania, które zadają programiści
Czy Udostępnianie oznacza „wysłane”?
Nie. System operacyjny nie zapewnia tutaj wiarygodnego potwierdzenia sukcesu odbiorcy. Pokaż „share sheet closed”.
Jak działa subskrypcja?
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.
Powiązane przewodniki
Aby uzyskać pomoc, podaj, której wtyczki i urządzenia używasz, jaką akcję podjąłeś i co się stało. Użyj przykładu bez danych osobowych. Nigdy nie udostępniaj swojego klucza ani prywatnych plików.