Інтерфейс Offline Files.
Інтерфейс Offline Files.
← Усі оригінальні посібники

Xodera Plugins · Bubble Native

Xodera Offline Files Native

Зберігайте вкладення звіту й вибрані файли на пристрої, відновлюйте їх пізніше та давайте користувачу поділитися потрібною копією.

Посібники публічних бета-версій · інструкції Haptics у його картці Bubble

Умови публічної бета-версії: Bubble безкоштовно · 7 днів з карткою, потім 1,50 USD/місяць за плагін у проєкті.

Документація переглянута 6 листопада 2026

Практичні сценарії

Вкладення до локального звіту

Форма повинна показувати, які файли були обрані, і дозволяти користувачеві зберегти керовану копію перед будь‑яким хмарним поданням.

`accepted_mime_types_json = your allowed MIME list`; `multiple = yes`; встановити `max_files`, `max_file_bytes` та обліковий запис/звіт `document_context`.

Pick files із MIME/size limits → перевірка списку → Save selection locally → власні saved IDs.

Використовуйте `selection_count`, `file_names`, `file_sizes` та `saved_file_ids` для відображення списку відгуків. Збережена керована копія зберігає оригінал виклику.

Скасований вибірник не є поданим звітом. На `files_error` зберігайте вже прийняті локальні ідентифікатори та показуйте `error_code`; ніколи не створюйте хмарне вкладення лише з локального URI.

Файли залишаються на цьому пристрої до окремого поширення чи завантаження.

Збереження експорту Photo/Recorder

Згенерований локальний файл може знаходитися у тимчасовому місці; додатку потрібна явна керована копія.

`source_uri = the local output of a separately accepted editor/recorder`; прив’яжіть його реальний `display_name` та `mime_type`; використайте той самий `document_context` власника.

Load local source → перевірити метадані → Save selection locally. Збережіть повернений ідентифікатор файлу лише у відповідному пристрої/контексті, потім Restore saved file за цим точним ідентифікатором за потреби.

Використайте `file_id`, `local_uri`, `size_bytes` та `is_saved_locally`; застосуйте `file_restored`, щоб розрізнити завершене відновлення від простого запиту.

Відхиліть віддалений URL HTTP як локальне джерело. Якщо джерело зникло або відновлення не вдалося, покажіть `error_code` і збережіть оригінальний запис додатку для відновлення.

Файли залишаються на цьому пристрої до окремого поширення чи завантаження.

Явне системне поширення

Додаток повинен передати вибраний локальний файл у лист поділу пристрою, а не вигадувати публічний URL.

`selected_file_id = the exact managed copy chosen from your app’s saved-file list`; його назва та MIME описують реальний локальний файл.

List saved files → Restore saved file → Share selected file після натискання користувачем «Поділитися». Зберігайте збережену копію, доки вони явно не виберуть Delete saved copy.

Використовуйте `share_status` та `share_sheet_closed` для оновлення інтерфейсу після закриття листа. Збережіть ідентифікатор файлу для наступного навмисного поділу.

Закритий лист поділу не є доказом доставки електронного листа/повідомлення. Обробляйте скасування та `files_error` без повідомлення успіху одержувачу.

Файли залишаються на цьому пристрої до окремого поширення чи завантаження.

Що працює зараз

Публічна бета-версія. Використовуйте описані елементи керування й дії; перевірте формати, дозволи та поведінку у своєму нативному застосунку. Вебпрев’ю не перевіряє результат на пристрої.

Побудуйте бізнес-процес

Використовуйте доступні бета-дії нижче й перевіряйте результат на потрібних пристроях.

У прикладах є записи Lesson, Message та Order. Замініть їх на власні типи даних і назви елементів. Замість адрес із прикладів підставте власні файли.

  1. Задайте document_context = Current User's unique id або стале значення акаунта й звіту. Налаштуйте accepted_mime_types_json, max_files і max_file_bytes.

  2. Виконайте Pick files або Load local source для доступного файлу з Photo Editor чи Recorder. Після selection_changed читайте відповідні списки файлів; Select picked file обирає індекс.

  3. Виконайте Save selection locally. Після files_saved збережіть saved_file_ids у записі локального вкладення. List saved files показує копії, а Restore saved file відкриває вибраний збережений ID.

  4. Share selected file відкриває системне меню поширення. share_sheet_closed означає лише закриття меню. Для Delete saved copy потрібні вибраний ID і confirm=yes.

Діаграма робочого процесу — не скріншот додатку · SVG

Налаштуйте один раз

Створіть або оберіть проєкт Bubble у BestPlugins → Dashboard → Plugins. Оберіть Xodera Offline Files Native, скопіюйте його ключ, відкрийте Bubble → Plugins → Xodera Offline Files Native і вставте ключ у licensing_api_key. Збережіть один раз, далі використовуйте дії нижче. Для кожного плагіна в кожному проєкті є окремий ключ.

Потрібен мобільний застосунок із доступом до вибраних файлів. Укажіть сталий document_context для акаунта або звіту, щоб його файли були правильно згруповані.

Налаштуйте один раз
  1. Створіть або оберіть проєкт Bubble у BestPlugins → Dashboard → Plugins.
  2. Оберіть цей плагін і скопіюйте ключ його проєкту.
  3. Відкрийте Bubble → Plugins → цей плагін. Вставте ключ його проєкту в licensing_api_key та збережіть.
  4. Додайте елемент, оберіть дані свого застосунку та побудуйте workflow нижче.
  5. На панелі керування перегляньте й підтвердьте 7-денний пробний доступ із карткою для цього плагіна. Потім він коштує 1,50 USD/місяць за проєкт, включно з розробкою та робочою версією. Скасуйте до завершення пробного періоду, щоб уникнути першого списання.
Встановлення та підписка

Для Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit та Haptics: безкоштовне встановлення в Bubble, 7 днів пробного доступу з карткою, потім 1,50 USD на місяць за плагін у проєкті. Розробку й робочу версію включено, без ліміту операцій. Обмеження файлів і можливостей залишаються. Перед підтвердженням перевірте оплату й скасування. Інші плагіни недоступні для покупки.

Як записати результат у свою базу

Приклад LocalAttachment: owner, document_context, ID збереженого файлу, display_name, mime_type та size_bytes. Цей ID працює лише на тому самому пристрої для того самого акаунта чи звіту. Для вкладення в інтернеті завантажте файл окремим workflow й запишіть отримане посилання на онлайн-файл.

Помилки, скасування та відновлення

Скасований вибір повертає operation_cancelled і не надсилає форму. Поки native_pending=yes, дочекайтеся закриття вибору файлів чи меню поширення. Clear session очищує поточний вибір, але залишає збережені копії. Якщо файл зник, дайте користувачу вибрати його знову.

Можливості й обмеження

Вибір 1–20 файлів за раз. Розмір одного файлу — від 1 байта до 256 MiB, або менше за вашим налаштуванням. Фільтр типів не перевіряє файли на віруси. ID і шляхи пристрою не є хмарними посиланнями. Локальні копії не зашифровані й можуть зникнути після видалення даних застосунку.

Налаштування, дії та результати

Використовуйте ці назви в Bubble. Плановані функції позначені окремо.

Доступні бета‑налаштування

Налаштування елемента

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

Стани

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

Події

selection_changedfiles_savedlist_loadedfile_restoredfile_deletedshare_sheet_closedoperation_cancelledfiles_error

Дії та їхні параметри

Pick filesLoad local sourceSelect picked fileSave selection locallyList saved filesRestore saved fileDelete saved copyShare selected fileCancel operationClear session
Налаштування елемента · 16
source_uritext · Типове значення: ""
Приклад значенняfile:///app-cache/report.pdf
Приклад виразу BubblePhoto Editor's output_uri
Доступне розташування файлу на цьому пристрої з вашого вибору файлів або іншого плагіна.
display_nametext · Типове значення: ""
Приклад значенняreport-photo.jpg
Приклад виразу BubbleSelected Attachment's display_name
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
mime_typetext · Типове значення: ""
Приклад значенняimage/jpeg
Приклад виразу BubblePhoto Editor's output_mime
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
document_contexttext · Типове значення: "default"
Приклад значення<current-user-id>
Приклад виразу BubbleCurrent User's unique id
Стале значення цього акаунта чи запису. Використовуйте його ж для відновлення файлів або чернеток.
selected_file_idtext · Типове значення: ""
Приклад значення<returned saved file ID>
Приклад виразу BubbleSelected LocalAttachment's local_file_id
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
accepted_mime_types_jsontext · Типове значення: "[\"*/*\"]"
Приклад значення["image/*","application/pdf"]
Приклад виразу BubbleReport Settings' accepted_mime_types_json
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
multipleyes_no · Типове значення: false
Приклад значенняyes
Приклад виразу BubbleReport Settings' allow_multiple_attachments
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
copy_to_cacheyes_no · Типове значення: true
Приклад значенняyes
Приклад виразу BubbleReport Settings' copy_to_cache
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
max_filesnumber · Типове значення: 20
Приклад значення5
Приклад виразу BubbleReport Settings' attachment_limit
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
max_file_bytesnumber · Типове значення: 268435456
Приклад значення10485760
Приклад виразу BubbleReport Settings' max_attachment_bytes
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
is_activeyes_no · Типове значення: true
Приклад значенняyes
Приклад виразу BubbleGuideHost's view_is_active (your yes/no custom state)
yes, доки ця сторінка відкрита; no під час виходу, щоб зупинити відтворення чи поточну дію.
disabledyes_no · Типове значення: false
Приклад значенняno
Приклад виразу BubbleGuideHost's is_busy (your yes/no custom state)
Вимкніть елемент, коли застосунок зайнятий або дія недоступна.
show_controlsyes_no · Типове значення: true
Приклад значенняyes
Приклад виразу BubbleApp Settings' show_editor_controls
Показати або приховати вбудовані кнопки.
languagetext · Типове значення: "auto"
Приклад значенняuk
Приклад виразу BubbleCurrent User's preferred_language
Укажіть language=auto, щоб автоматично використати підтримувану мову пристрою або браузера. Щоб обрати мову явно, укажіть підтримуваний код мови.
ui_text_jsontext · Типове значення: ""
Приклад значення{}
Приклад виразу BubbleApp Settings' player_labels_json (supported keys only)
Необов’язковий JSON із підтримуваними підписами кнопок. Залиште порожнім для вбудованих текстів.
titletext · Типове значення: ""
Приклад значенняLesson 4 — review
Приклад виразу BubbleSelected Lesson's name
Видимий текст app; порожнє значення використовує вбудований переклад, де підтримано. Без секретів.
Дії та їхні параметри · 10
Pick files

Немає параметрів дії

Load local source
source_uritext · Типове значення: —
Приклад значенняfile:///app-cache/report.pdf
Приклад виразу BubblePhoto Editor's output_uri
Доступне розташування файлу на цьому пристрої з вашого вибору файлів або іншого плагіна.
display_nametext · Типове значення: —
Приклад значенняreport-photo.jpg
Приклад виразу BubbleSelected Attachment's display_name
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
mime_typetext · Типове значення: —
Приклад значенняimage/jpeg
Приклад виразу BubblePhoto Editor's output_mime
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Select picked file
indexnumber · Типове значення: —
Приклад значення0
Приклад виразу BubbleSelected row's current_source_index
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Save selection locally

Немає параметрів дії

List saved files

Немає параметрів дії

Restore saved file
file_idtext · Типове значення: —
Приклад значення<returned saved file ID>
Приклад виразу BubbleSelected LocalAttachment's local_file_id
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Delete saved copy
file_idtext · Типове значення: —
Приклад значення<returned saved file ID>
Приклад виразу BubbleSelected LocalAttachment's local_file_id
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
confirmyes_no · Типове значення: —
Приклад значенняyes — explicit confirmation only
Приклад виразу BubbleConfirm Checkbox is checked
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Share selected file
dialog_titletext · Типове значення: —
Приклад значенняShare attachment
Приклад виразу BubbleSelected Report's share_title
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
utitext · Типове значення: —
Приклад значення""
Приклад виразу BubbleEmpty unless your iOS integration supplies a proven UTI
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Cancel operation

Немає параметрів дії

Clear session

Немає параметрів дії

Стани та події

Стани

status · text

Поточний результат дії. Перед записом успіху дочекайтеся відповідної події завершення.

is_busy · yes_no

Дія ще триває. Дочекайтеся завершення перед іншою дією.

native_pending · yes_no

Дія ще триває. Дочекайтеся завершення перед іншою дією.

operation · text

Поточне значення вибраного елемента. Читайте його після відповідної події.

selection_count · number

Поточне значення вибраного елемента. Читайте його після відповідної події.

selected_index · number

Поточне значення вибраного елемента. Читайте його після відповідної події.

file_id · text

Ідентифікатор цього елемента або дії. Зберігайте його разом із відповідним записом. Для повтору з невідомим результатом використовуйте той самий ID запиту.

local_uri · text

Розташування файлу на цьому пристрої. Збережіть або завантажте його окремо, якщо він потрібен в інтернеті.

display_name · text

Поточне значення вибраного елемента. Читайте його після відповідної події.

mime_type · text

Поточне значення вибраного елемента. Читайте його після відповідної події.

mime_source · text

Поточне значення вибраного елемента. Читайте його після відповідної події.

size_bytes · number

Поточне значення вибраного елемента. Читайте його після відповідної події.

is_saved_locally · yes_no

Поточне значення вибраного елемента. Читайте його після відповідної події.

file_ids · text (список)

Список для вибраних файлів. Елементи з однаковим індексом в інших файлових списках стосуються того самого файлу.

file_uris · text (список)

Список для вибраних файлів. Елементи з однаковим індексом в інших файлових списках стосуються того самого файлу.

file_names · text (список)

Список для вибраних файлів. Елементи з однаковим індексом в інших файлових списках стосуються того самого файлу.

file_mime_types · text (список)

Список для вибраних файлів. Елементи з однаковим індексом в інших файлових списках стосуються того самого файлу.

file_sizes · number (список)

Список для вибраних файлів. Елементи з однаковим індексом в інших файлових списках стосуються того самого файлу.

files_json · text

Поточне значення вибраного елемента. Читайте його після відповідної події.

saved_count · number

Поточне значення вибраного елемента. Читайте його після відповідної події.

saved_file_ids · text (список)

Список для вибраних файлів. Елементи з однаковим індексом в інших файлових списках стосуються того самого файлу.

saved_file_uris · text (список)

Список для вибраних файлів. Елементи з однаковим індексом в інших файлових списках стосуються того самого файлу.

saved_file_names · text (список)

Список для вибраних файлів. Елементи з однаковим індексом в інших файлових списках стосуються того самого файлу.

saved_file_mime_types · text (список)

Список для вибраних файлів. Елементи з однаковим індексом в інших файлових списках стосуються того самого файлу.

saved_file_sizes · number (список)

Список для вибраних файлів. Елементи з однаковим індексом в інших файлових списках стосуються того самого файлу.

saved_files_json · text

Поточне значення вибраного елемента. Читайте його після відповідної події.

invalid_saved_count · number

Поточне значення вибраного елемента. Читайте його після відповідної події.

share_status · text

Поточний результат дії. Перед записом успіху дочекайтеся відповідної події завершення.

error_code · text

Помилка останньої дії. Покажіть зрозуміле повідомлення й запропонуйте відповідний повтор.

Події

selection_changed

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

files_saved

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

list_loaded

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

file_restored

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

file_deleted

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

share_sheet_closed

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

operation_cancelled

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

files_error

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

Відповіді для розробника

Share означає «надіслано»?

Ні. Тут немає надійної квитанції отримувача; показуйте «меню поширення закрито».

Як працює підписка?

Для Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit та Haptics: безкоштовне встановлення в Bubble, 7 днів пробного доступу з карткою, потім 1,50 USD на місяць за плагін у проєкті. Розробку й робочу версію включено, без ліміту операцій. Обмеження файлів і можливостей залишаються. Перед підтвердженням перевірте оплату й скасування. Інші плагіни недоступні для покупки.

Пов’язані інструкції

Для допомоги вкажіть плагін, пристрій, дію та результат. Використовуйте приклад без персональних даних. Не надсилайте ключ або приватні файли.