
Xodera Plugins · Bubble Native
Xodera Offline Files Native
Giữ các tệp đính kèm báo cáo và các tệp đã chọn trên thiết bị, khôi phục chúng sau này và cho phép người dùng chia sẻ một bản sao đã chọn.
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.
Tài liệu được rà soát ngày 6 tháng mười một năm 2026
Ví dụ thực tế
Chuẩn bị một vài tệp đính kèm cục bộ trước khi gửi báo cáo.
Một biểu mẫu cần hiển thị các tệp đã được chọn và cho phép người dùng giữ một bản sao được quản lý trước khi gửi lên đám mây.
`accepted_mime_types_json = your allowed MIME list`; `multiple = yes`; đặt `max_files`, `max_file_bytes` và một tài khoản/báo cáo `document_context`.
Pick files → kiểm tra các tên/kích thước đã chọn → Save selection locally. Biểu mẫu của bạn giữ lại các ID tệp kết quả cho đến khi quy trình làm việc Submit riêng biệt tải lên các tệp đã được phê duyệt.
Sử dụng `selection_count`, `file_names`, `file_sizes` và `saved_file_ids` để hiển thị danh sách tệp cần kiểm tra. Bản sao được quản lý đã lưu giữ nguyên tệp gốc do mã gọi cung cấp.
Bộ chọn bị hủy không phải là báo cáo đã gửi. Trên `files_error`, giữ các ID cục bộ đã được chấp nhận và hiển thị `error_code`; không bao giờ tạo tệp đính kèm đám mây chỉ từ URI cục bộ.
Các tệp sẽ ở trên thiết bị này cho đến khi được chia sẻ hoặc tải lên riêng biệt.
Giữ đầu ra của trình chỉnh sửa ảnh hoặc trình ghi để sử dụng sau.
Tệp cục bộ được tạo có thể nằm ở vị trí tạm thời; ứng dụng cần một bản sao quản lý rõ ràng.
`source_uri = the local output of a separately accepted editor/recorder`; liên kết `display_name` và `mime_type` thực tế của nó; sử dụng `document_context` của cùng chủ sở hữu.
Load local source → kiểm tra siêu dữ liệu → Save selection locally. Lưu ID tệp trả về chỉ trong thiết bị/bối cảnh phù hợp, sau đó Restore saved file bằng ID chính xác đó khi cần.
Sử dụng `file_id`, `local_uri`, `size_bytes` và `is_saved_locally`; sử dụng `file_restored` để phân biệt việc khôi phục hoàn thành với chỉ yêu cầu khôi phục.
Từ chối URL HTTP từ xa như là nguồn cục bộ. Nếu nguồn biến mất hoặc khôi phục thất bại, hiển thị `error_code` và giữ bản ghi gốc của ứng dụng để phục hồi.
Các tệp sẽ ở trên thiết bị này cho đến khi được chia sẻ hoặc tải lên riêng biệt.
Cho phép người dùng chia sẻ biên nhận cục bộ do ứng dụng tạo hoặc tệp xuất.
Ứng dụng nên chuyển tệp cục bộ đã chọn cho bảng chia sẻ của thiết bị thay vì tạo URL công cộng.
`selected_file_id = the exact managed copy chosen from your app’s saved-file list`; tên và MIME của nó mô tả tệp cục bộ thực tế.
List saved files → Restore saved file → Share selected file sau khi người dùng nhấn Chia sẻ. Giữ bản sao đã lưu cho đến khi họ chọn rõ ràng Delete saved copy.
Sử dụng `share_status` và `share_sheet_closed` để cập nhật giao diện sau khi bảng đóng. Giữ lại ID tệp cho lần chia sẻ có chủ đích khác.
Việc đóng bảng chia sẻ không chứng minh email/tin nhắn đã đến người nhận. Khi xử lý hủy và `files_error`, không được báo rằng người nhận đã nhận thành công.
Các tệp sẽ ở trên thiết bị này cho đến khi được chia sẻ hoặc tải lên riêng biệt.
Những gì hiện đang hoạt động
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.
Xây dựng quy trình làm việc
Sử dụng các hành động beta có sẵn bên dưới và kiểm tra kết quả trên thiết bị mục tiêu của bạn.
Các ví dụ này sử dụng các bản ghi ứng dụng như Lesson, Message và Order. Hãy thay thế chúng bằng các kiểu dữ liệu và tên phần tử của bạn. Các địa chỉ phương tiện mẫu phải được thay thế bằng các tệp của bạn.
Đặt document_context = Current User's unique id, hoặc một giá trị ổn định cho tài khoản và báo cáo. Chọn accepted_mime_types_json, max_files và max_file_bytes.
Chạy Pick files, hoặc sử dụng Load local source cho tệp có thể đọc được được tạo bởi Trình chỉnh sửa Ảnh hoặc Trình ghi. Sau selection_changed, đọc danh sách tệp phù hợp; Select picked file chọn một chỉ mục.
Chạy Save selection locally. Sau files_saved, giữ saved_file_ids trong bản ghi đính kèm cục bộ của ứng dụng. List saved files hiển thị các bản sao đã lưu; Restore saved file mở ID đã lưu đã chọn.
Share selected file mở menu chia sẻ hệ thống. share_sheet_closed chỉ có nghĩa là menu đã đóng. Delete saved copy cần ID đã chọn và confirm=yes.
Cấu hình một lần
Tạo hoặc chọn dự án ứng dụng Bubble của bạn trong BestPlugins → Dashboard → Plugins. Chọn Xodera Offline Files Native, sao chép khóa của nó, sau đó mở Bubble → Plugins → Xodera Offline Files Native và dán vào licensing_api_key. Lưu một lần; sau đó sử dụng các hành động bên dưới. Mỗi plugin trong mỗi dự án có khóa riêng của nó.
Sử dụng ứng dụng gốc có quyền truy cập vào các tệp đã chọn. Đặt một document_context ổn định cho tài khoản hoặc báo cáo để các tệp đã lưu được nhóm đúng cách.
Cấu hình một lần
- Tạo hoặc chọn dự án ứng dụng Bubble của bạn tại BestPlugins → Dashboard → Plugins.
- Chọn plugin này và sao chép khóa dự án của nó.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Thêm phần tử, chọn dữ liệu ứng dụng của bạn và xây dựng quy trình làm việc bên dưới.
- 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.
Cài đặt và đăng ký
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.
Lưu kết quả vào ứng dụng của bạn
Ví dụ LocalAttachment: chủ sở hữu, document_context, ID tệp đã lưu, display_name, mime_type và size_bytes. ID này chỉ hoạt động trên cùng một thiết bị và cho cùng một tài khoản hoặc báo cáo. Đối với tệp đính kèm trực tuyến, tải tệp lên bằng quy trình riêng và lưu tham chiếu tệp trực tuyến được trả về.
Lỗi, hủy và khôi phục
Trình chọn bị hủy trả về operation_cancelled; nó không gửi biểu mẫu. Khi native_pending=yes, chờ trình chọn tệp hoặc menu chia sẻ đóng lại trước khi mở trình chọn khác. Clear session xóa lựa chọn hiện tại nhưng giữ lại các bản sao đã lưu. Nếu tệp bị thiếu, cho phép người dùng chọn lại.
Khả năng và giới hạn
Chọn các tệp 1–20 cùng một lúc. Giới hạn mỗi tệp: 1 byte–256 MiB, có thể có giới hạn thấp hơn nếu bạn chọn. Bộ lọc loại tệp không kiểm tra virus cho các tệp. ID và đường dẫn tệp trên thiết bị không hoạt động như liên kết tải xuống đám mây. Bản sao cục bộ không phải là lưu trữ được mã hóa và có thể bị mất nếu dữ liệu ứng dụng bị xóa.
Cài đặt, hành động và kết quả
Sử dụng các tên này trong Bubble. Các tính năng dự kiến được đánh dấu riêng.
Cài đặt beta khả dụng
Cài đặt phần tử
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 · textTrạng thái
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 (danh sách)file_uris · text (danh sách)file_names · text (danh sách)file_mime_types · text (danh sách)file_sizes · number (danh sách)files_json · textsaved_count · numbersaved_file_ids · text (danh sách)saved_file_uris · text (danh sách)saved_file_names · text (danh sách)saved_file_mime_types · text (danh sách)saved_file_sizes · number (danh sách)saved_files_json · textinvalid_saved_count · numbershare_status · texterror_code · textSự kiện
selection_changedfiles_savedlist_loadedfile_restoredfile_deletedshare_sheet_closedoperation_cancelledfiles_errorHành động và đầu vào của chúng
Pick filesLoad local sourceSelect picked fileSave selection locallyList saved filesRestore saved fileDelete saved copyShare selected fileCancel operationClear sessionCài đặt phần tử · 16
source_uritext · Mặc định: ""- Giá trị ví dụ
file:///app-cache/report.pdf - Ví dụ biểu thức Bubble
Photo Editor's output_uri - Vị trí tệp có thể đọc được trên thiết bị này, được trả về bởi bộ chọn của bạn hoặc plugin khác.
display_nametext · Mặc định: ""- Giá trị ví dụ
report-photo.jpg - Ví dụ biểu thức Bubble
Selected Attachment's display_name - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
mime_typetext · Mặc định: ""- Giá trị ví dụ
image/jpeg - Ví dụ biểu thức Bubble
Photo Editor's output_mime - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
document_contexttext · Mặc định: "default"- Giá trị ví dụ
<current-user-id> - Ví dụ biểu thức Bubble
Current User's unique id - Giá trị ổn định cho tài khoản hoặc bản ghi này. Sử dụng cùng giá trị khi khôi phục các tệp hoặc bản nháp đã lưu của nó.
selected_file_idtext · Mặc định: ""- Giá trị ví dụ
<returned saved file ID> - Ví dụ biểu thức Bubble
Selected LocalAttachment's local_file_id - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
accepted_mime_types_jsontext · Mặc định: "[\"*/*\"]"- Giá trị ví dụ
["image/*","application/pdf"] - Ví dụ biểu thức Bubble
Report Settings' accepted_mime_types_json - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
multipleyes_no · Mặc định: false- Giá trị ví dụ
yes - Ví dụ biểu thức Bubble
Report Settings' allow_multiple_attachments - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
copy_to_cacheyes_no · Mặc định: true- Giá trị ví dụ
yes - Ví dụ biểu thức Bubble
Report Settings' copy_to_cache - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
max_filesnumber · Mặc định: 20- Giá trị ví dụ
5 - Ví dụ biểu thức Bubble
Report Settings' attachment_limit - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
max_file_bytesnumber · Mặc định: 268435456- Giá trị ví dụ
10485760 - Ví dụ biểu thức Bubble
Report Settings' max_attachment_bytes - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
is_activeyes_no · Mặc định: true- Giá trị ví dụ
yes - Ví dụ biểu thức Bubble
GuideHost's view_is_active (your yes/no custom state) - Đặt yes khi chế độ xem này đang mở. Đặt no khi rời khỏi, để có thể dừng việc phát hoặc công việc hiện tại.
disabledyes_no · Mặc định: false- Giá trị ví dụ
no - Ví dụ biểu thức Bubble
GuideHost's is_busy (your yes/no custom state) - Vô hiệu hoá phần tử khi ứng dụng của bạn đang bận hoặc hành động này không khả dụng.
show_controlsyes_no · Mặc định: true- Giá trị ví dụ
yes - Ví dụ biểu thức Bubble
App Settings' show_editor_controls - Hiển thị hoặc ẩn các điều khiển tích hợp.
languagetext · Mặc định: "auto"- Giá trị ví dụ
uk - Ví dụ biểu thức Bubble
Current User's preferred_language - Đặt language=auto để theo dõi ngôn ngữ thiết bị hoặc trình duyệt được hỗ trợ. Nhập mã ngôn ngữ hỗ trợ để chọn một cách rõ ràng.
ui_text_jsontext · Mặc định: ""- Giá trị ví dụ
{} - Ví dụ biểu thức Bubble
App Settings' player_labels_json (supported keys only) - JSON tùy chọn với các nhãn nút được hỗ trợ. Để trống để sử dụng văn bản tích hợp.
titletext · Mặc định: ""- Giá trị ví dụ
Lesson 4 — review - Ví dụ biểu thức Bubble
Selected Lesson's name - Văn bản hiển thị trong ứng dụng; để trống sẽ dùng văn bản bản địa hóa tích hợp khi được hỗ trợ. Không nhập thông tin xác thực.
Hành động và đầu vào của chúng · 10
Pick files
Không có tham số hành động
Load local source
source_uritext · Mặc định: —- Giá trị ví dụ
file:///app-cache/report.pdf - Ví dụ biểu thức Bubble
Photo Editor's output_uri - Vị trí tệp có thể đọc được trên thiết bị này, được trả về bởi bộ chọn của bạn hoặc plugin khác.
display_nametext · Mặc định: —- Giá trị ví dụ
report-photo.jpg - Ví dụ biểu thức Bubble
Selected Attachment's display_name - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
mime_typetext · Mặc định: —- Giá trị ví dụ
image/jpeg - Ví dụ biểu thức Bubble
Photo Editor's output_mime - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
Select picked file
indexnumber · Mặc định: —- Giá trị ví dụ
0 - Ví dụ biểu thức Bubble
Selected row's current_source_index - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
Save selection locally
Không có tham số hành động
List saved files
Không có tham số hành động
Restore saved file
file_idtext · Mặc định: —- Giá trị ví dụ
<returned saved file ID> - Ví dụ biểu thức Bubble
Selected LocalAttachment's local_file_id - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
Delete saved copy
file_idtext · Mặc định: —- Giá trị ví dụ
<returned saved file ID> - Ví dụ biểu thức Bubble
Selected LocalAttachment's local_file_id - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
confirmyes_no · Mặc định: —- Giá trị ví dụ
yes — explicit confirmation only - Ví dụ biểu thức Bubble
Confirm Checkbox is checked - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
Share selected file
dialog_titletext · Mặc định: —- Giá trị ví dụ
Share attachment - Ví dụ biểu thức Bubble
Selected Report's share_title - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
utitext · Mặc định: —- Giá trị ví dụ
"" - Ví dụ biểu thức Bubble
Empty unless your iOS integration supplies a proven UTI - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
Cancel operation
Không có tham số hành động
Clear session
Không có tham số hành động
Trạng thái và sự kiện
Trạng thái
status · textKết quả hiện tại của hành động này. Sử dụng sự kiện hoàn thành tương ứng trước khi lưu thành công.
is_busy · yes_noCông việc vẫn đang tiến hành. Vui lòng chờ trước khi bắt đầu hành động khác.
native_pending · yes_noCông việc vẫn đang tiến hành. Vui lòng chờ trước khi bắt đầu hành động khác.
operation · textGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
selection_count · numberGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
selected_index · numberGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
file_id · textĐịnh danh cho mục hoặc hành động này. Giữ nó cùng bản ghi ứng dụng tương ứng. Sử dụng cùng một định danh yêu cầu khi thử lại kết quả không chắc chắn.
local_uri · textVị trí tệp trên thiết bị này. Lưu hoặc tải lên tệp riêng biệt nếu cần giữ trực tuyến.
display_name · textGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
mime_type · textGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
mime_source · textGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
size_bytes · numberGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
is_saved_locally · yes_noGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
file_ids · text (danh sách)Danh sách cho các tệp đã chọn. Các mục cùng chỉ mục trong các danh sách tệp khác đề cập đến cùng một tệp.
file_uris · text (danh sách)Danh sách cho các tệp đã chọn. Các mục cùng chỉ mục trong các danh sách tệp khác đề cập đến cùng một tệp.
file_names · text (danh sách)Danh sách cho các tệp đã chọn. Các mục cùng chỉ mục trong các danh sách tệp khác đề cập đến cùng một tệp.
file_mime_types · text (danh sách)Danh sách cho các tệp đã chọn. Các mục cùng chỉ mục trong các danh sách tệp khác đề cập đến cùng một tệp.
file_sizes · number (danh sách)Danh sách cho các tệp đã chọn. Các mục cùng chỉ mục trong các danh sách tệp khác đề cập đến cùng một tệp.
files_json · textGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
saved_count · numberGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
saved_file_ids · text (danh sách)Danh sách cho các tệp đã chọn. Các mục cùng chỉ mục trong các danh sách tệp khác đề cập đến cùng một tệp.
saved_file_uris · text (danh sách)Danh sách cho các tệp đã chọn. Các mục cùng chỉ mục trong các danh sách tệp khác đề cập đến cùng một tệp.
saved_file_names · text (danh sách)Danh sách cho các tệp đã chọn. Các mục cùng chỉ mục trong các danh sách tệp khác đề cập đến cùng một tệp.
saved_file_mime_types · text (danh sách)Danh sách cho các tệp đã chọn. Các mục cùng chỉ mục trong các danh sách tệp khác đề cập đến cùng một tệp.
saved_file_sizes · number (danh sách)Danh sách cho các tệp đã chọn. Các mục cùng chỉ mục trong các danh sách tệp khác đề cập đến cùng một tệp.
saved_files_json · textGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
invalid_saved_count · numberGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
share_status · textKết quả hiện tại của hành động này. Sử dụng sự kiện hoàn thành tương ứng trước khi lưu thành công.
error_code · textThông tin lỗi cho hành động cuối cùng. Hiển thị thông báo hữu ích và đề xuất thử lại liên quan.
Sự kiện
selection_changedKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
files_savedKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
list_loadedKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
file_restoredKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
file_deletedKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
share_sheet_closedKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
operation_cancelledKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
files_errorKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
Câu hỏi mà nhà phát triển đặt ra
Share có nghĩa là “đã gửi” không?
Không. Hệ điều hành không cung cấp biên nhận thành công người nhận đáng tin cậy ở đây. Hiển thị “share sheet closed”.
Đăng ký hoạt động như thế nào?
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.
Hướng dẫn liên quan
Để được trợ giúp, cho chúng tôi biết plugin và thiết bị bạn đang sử dụng, hành động bạn đã thử và những gì đã xảy ra. Sử dụng ví dụ không có dữ liệu cá nhân. Không bao giờ chia sẻ khóa hoặc tệp riêng của bạn.