Interfejs Offline Files.
Interfejs Offline Files.
← Wszystkie natywne przewodniki

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Diagram przepływu pracy — nie zrzut ekranu aplikacji

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
  1. Utwórz lub wybierz swój projekt aplikacji Bubble w BestPlugins → Dashboard → Plugins.
  2. Wybierz tę wtyczkę i skopiuj jej klucz projektu.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Dodaj element, wybierz dane aplikacji i zbuduj poniższy przepływ pracy.
  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.
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 · text

Stany

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

Zdarzenia

selection_changedfiles_savedlist_loadedfile_restoredfile_deletedshare_sheet_closedoperation_cancelledfiles_error

Akcje i ich wejścia

Pick filesLoad local sourceSelect picked fileSave selection locallyList saved filesRestore saved fileDelete saved copyShare selected fileCancel operationClear session
Ustawienia elementu · 16
source_uritext · Domyślne: ""
Przykładowa wartośćfile:///app-cache/report.pdf
Przykładowe wyrażenie BubblePhoto 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 BubbleSelected 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 BubblePhoto 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 BubbleCurrent 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 BubbleSelected 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 BubbleReport 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 BubbleReport 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 BubbleReport 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 BubbleReport 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 BubbleReport 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 BubbleGuideHost'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 BubbleGuideHost'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 BubbleApp Settings' show_editor_controls
Pokaż lub ukryj wbudowane kontrolki.
languagetext · Domyślne: "auto"
Przykładowa wartośćuk
Przykładowe wyrażenie BubbleCurrent 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 BubbleApp 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 BubbleSelected 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 BubblePhoto 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 BubbleSelected 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 BubblePhoto 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 BubbleSelected 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 BubbleSelected 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 BubbleSelected 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 BubbleConfirm 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 BubbleSelected 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 BubbleEmpty 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 · text

Aktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu.

is_busy · yes_no

Praca wciąż trwa. Poczekaj przed rozpoczęciem kolejnej akcji.

native_pending · yes_no

Praca wciąż trwa. Poczekaj przed rozpoczęciem kolejnej akcji.

operation · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

selection_count · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

selected_index · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

file_id · text

Identyfikator tego elementu lub akcji. Przechowuj go wraz z odpowiadającym rekordem aplikacji. Użyj tego samego identyfikatora żądania przy ponawianiu niepewnego wyniku.

local_uri · text

Lokalizacja pliku na tym urządzeniu. Zapisz lub prześlij plik osobno, jeśli musi być przechowywany online.

display_name · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

mime_type · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

mime_source · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

size_bytes · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

is_saved_locally · yes_no

Aktualna 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 · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

saved_count · number

Aktualna 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 · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

invalid_saved_count · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

share_status · text

Aktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu.

error_code · text

Informacje o błędzie ostatniej akcji. Wyświetl pomocną wiadomość i zaoferuj odpowiednią ponowną próbę.

Zdarzenia

selection_changed

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

files_saved

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

list_loaded

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

file_restored

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

file_deleted

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

share_sheet_closed

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

operation_cancelled

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

files_error

Gdy 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.