Offline Files интерфейс.
Offline Files интерфейс.
← Всички вградени ръководства

Xodera Plugins · Bubble Native

Xodera Offline Files Native

Запазете прикачените към доклада и избраните файлове на устройството, възстановете ги по-късно и позволете на потребителя да сподели избрано копие.

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.

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

Практически примери

Подгответе няколко локални прикачени файла преди подаване на доклад.

Формулярът трябва да показва кои файлове са избрани и да позволи на потребителя да запази управлявано копие преди всяко изпращане в облака.

`accepted_mime_types_json = your allowed MIME list`; `multiple = yes`; задайте `max_files`, `max_file_bytes` и акаунт/доклад `document_context`.

Pick files → прегледайте избраните имена/размери → Save selection locally. Вашият формуляр запазва получените ID‑та на файловете, докато отделният процес Submit качва одобрените файлове.

Използвайте `selection_count`, `file_names`, `file_sizes` и `saved_file_ids` за визуализиране на списъка с отзиви. Записано управлявано копие запазва оригинала на извикващия.

Отмененото средство за избор не е подаден доклад. При `files_error` запазете вече приетите локални ID‑та и покажете `error_code`; никога не създавайте облачно прикачване само от локален URI.

Файловете остават на това устройство, докато не бъдат споделени или качени отделно.

Запазете изхода от фото-редактор или записвач за по‑късно използване

Създаден локален файл може да се намира във временно местоположение; приложението се нуждае от изрично управлявано копие.

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

Load local source → прегледайте метаданните → Save selection locally. Съхранявайте върнатото ID на файла само в съответното устройство/контекст, след което използвайте Restore saved file с точно това ID, когато е необходимо.

Използвайте `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`, за да актуализирате интерфейса след затваряне на листа. Запазете ID‑то на файла за следващо умишлено споделяне.

Затвореният лист за споделяне не доказва, че имейлът/съобщението е доставено. Обработвайте отменяне и `files_error`, без да съобщавате успех на получателя.

Файловете остават на това устройство, докато не бъдат споделени или качени отделно.

Какво работи сега

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.

Създайте работния процес

Използвайте наличните бета действия по-долу и тествайте резултата на целевите си устройства.

Тези примери използват записи на приложение като 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.

Диаграма на работния процес — не е снимка на приложение

Конфигурирайте еднократно

Създайте или изберете вашия 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. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Добавете елемента, изберете вашите данни за приложението и изградете работния процес по-долу.
  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.
Инсталиране и абонамент

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.

Запазете резултата във вашето приложение

Пример LocalAttachment: собственик, document_context, ID на запазен файл, display_name, mime_type и size_bytes. Това ID работи само на същото устройство и за същия акаунт или доклад. За онлайн прикачен файл качете файла чрез отделен процес и запазете върнатата онлайн препратка към файла.

Неуспех, отказ и възстановяване

Отказан избор връща 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
Пример Bubble изразPhoto Editor's output_uri
Четимо местоположение на файл на това устройство, върнато от вашия изборник или друг плъгин.
display_nametext · По подразбиране: ""
Примерна стойностreport-photo.jpg
Пример Bubble изразSelected Attachment's display_name
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
mime_typetext · По подразбиране: ""
Примерна стойностimage/jpeg
Пример Bubble изразPhoto Editor's output_mime
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
document_contexttext · По подразбиране: "default"
Примерна стойност<current-user-id>
Пример Bubble изразCurrent User's unique id
Стабилна стойност за този акаунт или запис. Използвайте същата стойност при възстановяване на запазените му файлове или чернови.
selected_file_idtext · По подразбиране: ""
Примерна стойност<returned saved file ID>
Пример Bubble изразSelected LocalAttachment's local_file_id
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
accepted_mime_types_jsontext · По подразбиране: "[\"*/*\"]"
Примерна стойност["image/*","application/pdf"]
Пример Bubble изразReport Settings' accepted_mime_types_json
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
multipleyes_no · По подразбиране: false
Примерна стойностyes
Пример Bubble изразReport Settings' allow_multiple_attachments
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
copy_to_cacheyes_no · По подразбиране: true
Примерна стойностyes
Пример Bubble изразReport Settings' copy_to_cache
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
max_filesnumber · По подразбиране: 20
Примерна стойност5
Пример Bubble изразReport Settings' attachment_limit
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
max_file_bytesnumber · По подразбиране: 268435456
Примерна стойност10485760
Пример Bubble изразReport Settings' max_attachment_bytes
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
is_activeyes_no · По подразбиране: true
Примерна стойностyes
Пример Bubble изразGuideHost's view_is_active (your yes/no custom state)
Задайте да, докато този изглед е отворен. Задайте не при изход, за да може възпроизвеждането или текущата работа да спрат.
disabledyes_no · По подразбиране: false
Примерна стойностno
Пример Bubble изразGuideHost's is_busy (your yes/no custom state)
Деактивирайте елемента, докато приложението е заето или това действие не е достъпно.
show_controlsyes_no · По подразбиране: true
Примерна стойностyes
Пример Bubble изразApp Settings' show_editor_controls
Показване или скриване на вградените контроли.
languagetext · По подразбиране: "auto"
Примерна стойностuk
Пример Bubble изразCurrent User's preferred_language
Задайте language=auto да следва поддържано устройство или език на браузъра. Въведете поддържан код на езика, за да го изберете изрично.
ui_text_jsontext · По подразбиране: ""
Примерна стойност{}
Пример Bubble изразApp Settings' player_labels_json (supported keys only)
Опционален JSON с поддържани етикети за бутони. Оставете празно, за да се използва вграденият текст.
titletext · По подразбиране: ""
Примерна стойностLesson 4 — review
Пример Bubble изразSelected Lesson's name
Видим текст в приложението; празно използва вграден локализиран текст, където се поддържа. Без идентификационни данни.
Действия и техните входове · 10
Pick files

Няма параметри за действие

Load local source
source_uritext · По подразбиране: —
Примерна стойностfile:///app-cache/report.pdf
Пример Bubble изразPhoto Editor's output_uri
Четимо местоположение на файл на това устройство, върнато от вашия изборник или друг плъгин.
display_nametext · По подразбиране: —
Примерна стойностreport-photo.jpg
Пример Bubble изразSelected Attachment's display_name
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
mime_typetext · По подразбиране: —
Примерна стойностimage/jpeg
Пример Bubble изразPhoto Editor's output_mime
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
Select picked file
indexnumber · По подразбиране: —
Примерна стойност0
Пример Bubble изразSelected row's current_source_index
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
Save selection locally

Няма параметри за действие

List saved files

Няма параметри за действие

Restore saved file
file_idtext · По подразбиране: —
Примерна стойност<returned saved file ID>
Пример Bubble изразSelected LocalAttachment's local_file_id
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
Delete saved copy
file_idtext · По подразбиране: —
Примерна стойност<returned saved file ID>
Пример Bubble изразSelected LocalAttachment's local_file_id
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
confirmyes_no · По подразбиране: —
Примерна стойностyes — explicit confirmation only
Пример Bubble изразConfirm Checkbox is checked
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
Share selected file
dialog_titletext · По подразбиране: —
Примерна стойностShare attachment
Пример Bubble изразSelected Report's share_title
Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
utitext · По подразбиране: —
Примерна стойност""
Пример Bubble изразEmpty 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

Идентификатор за този елемент или действие. Запазете го заедно със съответния запис в приложението. Използвайте същия идентификатор на заявката при повторен опит за несигурен резултат.

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“ означава „изпратено“?

Не. Операционната система не предоставя надеждно потвърждение за получател тук. Показвайте „share sheet closed“.

Как работи абонаментът?

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.

Свързани ръководства

За помощ, кажете ни кой плъгин и устройство използвате, действието, което опитахте, и какво се случи. Използвайте пример без лични данни. Никога не споделяйте вашия ключ или частни файлове.