
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.
문서 검토일: 2026년 11월 6일
실용적인 예시
보고서를 제출하기 전에 여러 로컬 첨부 파일을 준비하십시오.
양식은 선택된 파일을 표시하고 사용자가 클라우드 제출 전에 관리된 복사본을 보관하도록 해야 합니다.
`accepted_mime_types_json = your allowed MIME list`; `multiple = yes`; `max_files`, `max_file_bytes` 및 계정/보고서 `document_context`를 설정하십시오.
Pick files → 선택된 이름/크기를 검사 → Save selection locally. 양식은 승인된 파일이 별도의 제출 워크플로우에 업로드될 때까지 결과 파일 ID를 보관합니다.
`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를 일치하는 기기/컨텍스트에만 저장하고, 필요할 때 정확히 해당 ID로 Restore saved file하십시오.
`file_id`, `local_uri`, `size_bytes` 및 `is_saved_locally`를 사용하고, `file_restored`를 사용하여 복원이 완료된 경우와 단순히 요청한 경우를 구분하십시오.
원격 HTTP URL을 로컬 소스로 거부합니다. 소스가 사라지거나 복원이 실패하면 `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를 탭하면 Share selected file 실행. 사용자가 명시적으로 Delete saved copy를 선택할 때까지 저장된 복사본을 유지하세요.
시트가 닫힌 후 UI를 업데이트하려면 `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와 같은 앱 레코드를 사용합니다. 이를 귀하의 데이터 유형 및 요소 이름으로 교체하십시오. 예시 미디어 주소는 귀하의 파일로 교체해야 합니다.
document_context = Current User's unique id를 설정하거나 계정 및 보고서에 대한 안정적인 값을 지정하세요. accepted_mime_types_json, max_files 및 max_file_bytes를 선택하세요.
Pick files를 실행하거나 Photo Editor 또는 Recorder가 만든 읽을 수 있는 파일에 대해 Load local source를 사용하세요. selection_changed 후에 일치하는 파일 목록을 읽고; Select picked file가 인덱스를 선택합니다.
Save selection locally를 실행합니다. files_saved 후에, saved_file_ids를 앱의 로컬 첨부 기록에 보관하십시오. List saved files는 저장된 복사본을 표시하고; Restore saved file는 선택된 저장된 ID를 엽니다.
Share selected file는 시스템 공유 메뉴를 엽니다. share_sheet_closed는 메뉴가 닫혔음을 의미합니다. Delete saved copy는 선택된 ID와 confirm=yes가 필요합니다.
한 번만 설정
BestPlugins → Dashboard → Plugins에서 Bubble 앱 프로젝트를 만들거나 선택하십시오. Xodera Offline Files Native를 선택하고 키를 복사한 다음 Bubble → Plugins → Xodera Offline Files Native를 열어 licensing_api_key에 붙여넣으세요. 한 번 저장한 후 아래 액션을 사용하십시오. 각 프로젝트의 각 플러그인마다 고유한 키가 있습니다.
선택한 파일에 접근할 수 있는 네이티브 앱을 사용하세요. 계정 또는 보고서에 안정적인 document_context를 설정하여 저장된 파일이 올바르게 그룹화되도록 합니다.
한 번만 설정
- BestPlugins → Dashboard → Plugins에서 Bubble 앱 프로젝트를 만들거나 선택하십시오.
- 이 플러그인을 선택하고 프로젝트 키를 복사하십시오.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- 요소를 추가하고 앱 데이터를 선택한 뒤 아래 워크플로우를 구축하십시오.
- 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) - 이 뷰가 열려 있는 동안 yes로 설정하고, 떠날 때 no로 설정하여 재생 또는 현재 작업이 중지될 수 있게 합니다.
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이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.
개발자가 묻는 질문
공유는 “보낸”을 의미합니까?
아니요. 운영 체제는 여기서 수신자에게 성공적으로 전달되었다는 신뢰할 만한 확인을 제공하지 않습니다. “공유 시트 닫힘”를 표시하세요.
구독은 어떻게 작동합니까?
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.
관련 가이드
도움을 받으려면 사용 중인 플러그인과 기기, 시도한 작업 및 발생한 상황을 알려 주세요. 개인 데이터가 없는 예시를 사용하십시오. 키나 개인 파일을 절대 공유하지 마세요.