
Xodera Plugins · Bubble Native
Xodera Offline Files Native
Simpan lampiran laporan dan file yang dipilih di perangkat, pulihkan nanti, dan izinkan pengguna membagikan salinan yang dipilih.
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.
Dokumentasi ditinjau 6 November 2026
Contoh praktis
Siapkan beberapa lampiran lokal sebelum mengirimkan laporan
Formulir harus menampilkan file mana yang dipilih dan memungkinkan pengguna menyimpan salinan terkelola sebelum pengiriman ke cloud apa pun.
`accepted_mime_types_json = your allowed MIME list`; `multiple = yes`; tetapkan `max_files`, `max_file_bytes`, dan akun/laporan `document_context`.
Pick files → periksa nama/ukuran yang dipilih → Save selection locally. Formulir Anda menyimpan ID file yang dihasilkan hingga alur kerja Submit terpisah mengunggah file yang disetujui.
Gunakan `selection_count`, `file_names`, `file_sizes`, dan `saved_file_ids` untuk menampilkan daftar ulasan. Salinan terkelola yang disimpan mempertahankan asli pemanggil.
Pemilih yang dibatalkan bukan laporan yang dikirim. Pada `files_error`, pertahankan ID lokal yang sudah diterima dan tampilkan `error_code`; jangan pernah membuat lampiran cloud hanya dari URI lokal.
Berkas tetap berada di perangkat ini sampai dibagikan atau diunggah secara terpisah.
Simpan output foto-editor atau perekam untuk penggunaan nanti
Berkas lokal yang dihasilkan dapat berada di lokasi sementara; aplikasi memerlukan salinan terkelola yang eksplisit.
`source_uri = the local output of a separately accepted editor/recorder`; hubungkan `display_name` dan `mime_type` yang sebenarnya; gunakan `document_context` milik pemilik yang sama.
Load local source → periksa metadata → Save selection locally. Simpan ID berkas yang dikembalikan hanya di perangkat/konteks yang cocok, kemudian Restore saved file dengan ID tepat itu saat diperlukan.
Gunakan `file_id`, `local_uri`, `size_bytes`, dan `is_saved_locally`; gunakan `file_restored` untuk membedakan pemulihan yang selesai dari sekadar permintaan.
Tolak URL HTTP remote sebagai sumber lokal. Jika sumber menghilang atau pemulihan gagal, tampilkan `error_code` dan pertahankan catatan aplikasi asli untuk pemulihan.
Berkas tetap berada di perangkat ini sampai dibagikan atau diunggah secara terpisah.
Izinkan pengguna membagikan tanda terima lokal yang dihasilkan aplikasi atau ekspor
Aplikasi harus menyerahkan berkas lokal terpilih ke lembar berbagi perangkat alih-alih membuat URL publik.
`selected_file_id = the exact managed copy chosen from your app’s saved-file list`; namanya dan MIME menjelaskan berkas lokal yang sebenarnya.
List saved files → Restore saved file → Share selected file setelah pengguna mengetuk Bagikan. Simpan salinan yang disimpan sampai mereka secara eksplisit memilih Delete saved copy.
Gunakan `share_status` dan `share_sheet_closed` untuk memperbarui UI setelah lembar ditutup. Simpan ID berkas untuk berbagi sengaja berikutnya.
Lembar berbagi yang ditutup bukan bukti bahwa email/pesan telah terkirim. Tangani pembatalan dan `files_error` tanpa melaporkan keberhasilan kepada penerima.
Berkas tetap berada di perangkat ini sampai dibagikan atau diunggah secara terpisah.
Apa yang berfungsi sekarang
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.
Buat alur kerja
Gunakan tindakan beta yang tersedia di bawah ini dan uji hasilnya pada perangkat target Anda.
Contoh-contoh ini menggunakan catatan aplikasi seperti Lesson, Message, dan Order. Ganti mereka dengan tipe data dan nama elemen Anda sendiri. Alamat media contoh harus diganti dengan file Anda sendiri.
Tetapkan document_context = Current User's unique id, atau nilai stabil untuk akun dan laporan. Pilih accepted_mime_types_json, max_files, dan max_file_bytes.
Jalankan Pick files, atau gunakan Load local source untuk file yang dapat dibaca yang dihasilkan oleh Photo Editor atau Recorder. Setelah selection_changed, baca daftar file yang cocok; Select picked file memilih indeks.
Jalankan Save selection locally. Setelah files_saved, simpan saved_file_ids dalam catatan lampiran lokal aplikasi Anda. List saved files menampilkan salinan yang disimpan; Restore saved file membuka ID yang disimpan yang dipilih.
Share selected file membuka menu berbagi sistem. share_sheet_closed hanya berarti menu ditutup. Delete saved copy membutuhkan ID yang dipilih dan confirm=yes.
Konfigurasi sekali saja
Buat atau pilih proyek aplikasi Bubble Anda di BestPlugins → Dashboard → Plugins. Pilih Xodera Offline Files Native, salin kuncinya, lalu buka Bubble → Plugins → Xodera Offline Files Native dan tempelkan ke licensing_api_key. Simpan sekali; kemudian gunakan tindakan di bawah ini. Setiap plugin di setiap proyek memiliki kunci masing‑masing.
Gunakan aplikasi native dengan akses ke file yang dipilih. Tetapkan document_context yang stabil untuk akun atau laporan agar file yang disimpan tetap dikelompokkan dengan benar.
Konfigurasi sekali saja
- Buat atau pilih proyek aplikasi Bubble Anda di BestPlugins → Dashboard → Plugins.
- Pilih plugin ini dan salin kunci proyeknya.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Tambahkan elemen, pilih data aplikasi Anda, dan bangun alur kerja di bawah ini.
- 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.
Instalasi dan langganan
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.
Simpan hasil di aplikasi Anda
Contoh LocalAttachment: pemilik, document_context, ID file yang disimpan, display_name, mime_type, dan size_bytes. ID ini hanya berfungsi pada perangkat yang sama dan untuk akun atau laporan yang sama. Untuk lampiran daring, unggah file dengan alur kerja terpisah dan simpan referensi file daring yang dikembalikan.
Kegagalan, pembatalan, dan pemulihan
Pemilih yang dibatalkan mengembalikan operation_cancelled; tidak mengirimkan formulir. Selama native_pending=yes, tunggu hingga pemilih file atau menu berbagi tertutup sebelum membuka yang lain. Clear session menghapus pilihan saat ini tetapi mempertahankan salinan yang disimpan. Jika file tidak ada, izinkan pengguna memilihnya kembali.
Kemampuan dan batasan
Pilih file 1–20 sekaligus. Batas per file: 1 byte–256 MiB, dengan batas lebih rendah jika Anda memilih. Filter tipe file tidak memeriksa virus. ID file dan jalur perangkat tidak berfungsi sebagai tautan unduhan cloud. Salinan lokal bukan penyimpanan terenkripsi dan dapat hilang jika data aplikasi dihapus.
Pengaturan, tindakan, dan hasil
Gunakan nama-nama ini di Bubble. Fitur yang direncanakan ditandai secara terpisah.
Pengaturan beta yang tersedia
Pengaturan elemen
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 · textStatus
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 (daftar)file_uris · text (daftar)file_names · text (daftar)file_mime_types · text (daftar)file_sizes · number (daftar)files_json · textsaved_count · numbersaved_file_ids · text (daftar)saved_file_uris · text (daftar)saved_file_names · text (daftar)saved_file_mime_types · text (daftar)saved_file_sizes · number (daftar)saved_files_json · textinvalid_saved_count · numbershare_status · texterror_code · textAcara
selection_changedfiles_savedlist_loadedfile_restoredfile_deletedshare_sheet_closedoperation_cancelledfiles_errorTindakan dan inputnya
Pick filesLoad local sourceSelect picked fileSave selection locallyList saved filesRestore saved fileDelete saved copyShare selected fileCancel operationClear sessionPengaturan elemen · 16
source_uritext · Bawaan: ""- Nilai contoh
file:///app-cache/report.pdf - Contoh ekspresi Bubble
Photo Editor's output_uri - Lokasi berkas yang dapat dibaca di perangkat ini, dikembalikan oleh pemilih Anda atau plugin lain.
display_nametext · Bawaan: ""- Nilai contoh
report-photo.jpg - Contoh ekspresi Bubble
Selected Attachment's display_name - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
mime_typetext · Bawaan: ""- Nilai contoh
image/jpeg - Contoh ekspresi Bubble
Photo Editor's output_mime - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
document_contexttext · Bawaan: "default"- Nilai contoh
<current-user-id> - Contoh ekspresi Bubble
Current User's unique id - Nilai stabil untuk akun atau catatan ini. Gunakan nilai yang sama saat memulihkan file atau draf yang disimpan.
selected_file_idtext · Bawaan: ""- Nilai contoh
<returned saved file ID> - Contoh ekspresi Bubble
Selected LocalAttachment's local_file_id - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
accepted_mime_types_jsontext · Bawaan: "[\"*/*\"]"- Nilai contoh
["image/*","application/pdf"] - Contoh ekspresi Bubble
Report Settings' accepted_mime_types_json - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
multipleyes_no · Bawaan: false- Nilai contoh
yes - Contoh ekspresi Bubble
Report Settings' allow_multiple_attachments - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
copy_to_cacheyes_no · Bawaan: true- Nilai contoh
yes - Contoh ekspresi Bubble
Report Settings' copy_to_cache - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
max_filesnumber · Bawaan: 20- Nilai contoh
5 - Contoh ekspresi Bubble
Report Settings' attachment_limit - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
max_file_bytesnumber · Bawaan: 268435456- Nilai contoh
10485760 - Contoh ekspresi Bubble
Report Settings' max_attachment_bytes - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
is_activeyes_no · Bawaan: true- Nilai contoh
yes - Contoh ekspresi Bubble
GuideHost's view_is_active (your yes/no custom state) - Setel ya saat tampilan ini terbuka. Setel tidak saat keluar, sehingga pemutaran atau pekerjaan saat ini dapat berhenti.
disabledyes_no · Bawaan: false- Nilai contoh
no - Contoh ekspresi Bubble
GuideHost's is_busy (your yes/no custom state) - Nonaktifkan elemen saat aplikasi Anda sibuk atau tindakan ini tidak tersedia.
show_controlsyes_no · Bawaan: true- Nilai contoh
yes - Contoh ekspresi Bubble
App Settings' show_editor_controls - Tampilkan atau sembunyikan kontrol bawaan.
languagetext · Bawaan: "auto"- Nilai contoh
uk - Contoh ekspresi Bubble
Current User's preferred_language - Set language=auto untuk mengikuti perangkat atau bahasa peramban yang didukung. Masukkan kode bahasa yang didukung untuk memilihnya secara eksplisit.
ui_text_jsontext · Bawaan: ""- Nilai contoh
{} - Contoh ekspresi Bubble
App Settings' player_labels_json (supported keys only) - JSON opsional dengan label tombol yang didukung. Biarkan kosong untuk menggunakan teks bawaan.
titletext · Bawaan: ""- Nilai contoh
Lesson 4 — review - Contoh ekspresi Bubble
Selected Lesson's name - Teks aplikasi yang terlihat; kosong akan menggunakan salinan terlokalisasi bawaan bila didukung. Tanpa kredensial.
Tindakan dan inputnya · 10
Pick files
Tidak ada parameter aksi
Load local source
source_uritext · Bawaan: —- Nilai contoh
file:///app-cache/report.pdf - Contoh ekspresi Bubble
Photo Editor's output_uri - Lokasi berkas yang dapat dibaca di perangkat ini, dikembalikan oleh pemilih Anda atau plugin lain.
display_nametext · Bawaan: —- Nilai contoh
report-photo.jpg - Contoh ekspresi Bubble
Selected Attachment's display_name - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
mime_typetext · Bawaan: —- Nilai contoh
image/jpeg - Contoh ekspresi Bubble
Photo Editor's output_mime - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Select picked file
indexnumber · Bawaan: —- Nilai contoh
0 - Contoh ekspresi Bubble
Selected row's current_source_index - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Save selection locally
Tidak ada parameter aksi
List saved files
Tidak ada parameter aksi
Restore saved file
file_idtext · Bawaan: —- Nilai contoh
<returned saved file ID> - Contoh ekspresi Bubble
Selected LocalAttachment's local_file_id - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Delete saved copy
file_idtext · Bawaan: —- Nilai contoh
<returned saved file ID> - Contoh ekspresi Bubble
Selected LocalAttachment's local_file_id - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
confirmyes_no · Bawaan: —- Nilai contoh
yes — explicit confirmation only - Contoh ekspresi Bubble
Confirm Checkbox is checked - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Share selected file
dialog_titletext · Bawaan: —- Nilai contoh
Share attachment - Contoh ekspresi Bubble
Selected Report's share_title - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
utitext · Bawaan: —- Nilai contoh
"" - Contoh ekspresi Bubble
Empty unless your iOS integration supplies a proven UTI - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Cancel operation
Tidak ada parameter aksi
Clear session
Tidak ada parameter aksi
Status dan peristiwa
Status
status · textHasil saat ini dari tindakan ini. Gunakan peristiwa penyelesaian yang cocok sebelum menyimpan keberhasilan.
is_busy · yes_noPekerjaan masih dalam proses. Tunggu sebelum memulai tindakan lain.
native_pending · yes_noPekerjaan masih dalam proses. Tunggu sebelum memulai tindakan lain.
operation · textNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
selection_count · numberNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
selected_index · numberNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
file_id · textPengidentifikasi untuk item atau tindakan ini. Simpan bersama catatan aplikasi yang cocok. Gunakan pengidentifikasi permintaan yang sama saat mencoba kembali hasil yang tidak pasti.
local_uri · textLokasi file di perangkat ini. Simpan atau unggah file secara terpisah jika harus disimpan secara daring.
display_name · textNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
mime_type · textNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
mime_source · textNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
size_bytes · numberNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
is_saved_locally · yes_noNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
file_ids · text (daftar)Daftar untuk berkas yang dipilih. Item pada indeks yang sama di daftar berkas lainnya merujuk pada berkas yang sama.
file_uris · text (daftar)Daftar untuk berkas yang dipilih. Item pada indeks yang sama di daftar berkas lainnya merujuk pada berkas yang sama.
file_names · text (daftar)Daftar untuk berkas yang dipilih. Item pada indeks yang sama di daftar berkas lainnya merujuk pada berkas yang sama.
file_mime_types · text (daftar)Daftar untuk berkas yang dipilih. Item pada indeks yang sama di daftar berkas lainnya merujuk pada berkas yang sama.
file_sizes · number (daftar)Daftar untuk berkas yang dipilih. Item pada indeks yang sama di daftar berkas lainnya merujuk pada berkas yang sama.
files_json · textNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
saved_count · numberNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
saved_file_ids · text (daftar)Daftar untuk berkas yang dipilih. Item pada indeks yang sama di daftar berkas lainnya merujuk pada berkas yang sama.
saved_file_uris · text (daftar)Daftar untuk berkas yang dipilih. Item pada indeks yang sama di daftar berkas lainnya merujuk pada berkas yang sama.
saved_file_names · text (daftar)Daftar untuk berkas yang dipilih. Item pada indeks yang sama di daftar berkas lainnya merujuk pada berkas yang sama.
saved_file_mime_types · text (daftar)Daftar untuk berkas yang dipilih. Item pada indeks yang sama di daftar berkas lainnya merujuk pada berkas yang sama.
saved_file_sizes · number (daftar)Daftar untuk berkas yang dipilih. Item pada indeks yang sama di daftar berkas lainnya merujuk pada berkas yang sama.
saved_files_json · textNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
invalid_saved_count · numberNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
share_status · textHasil saat ini dari tindakan ini. Gunakan peristiwa penyelesaian yang cocok sebelum menyimpan keberhasilan.
error_code · textInformasi error untuk tindakan terakhir. Tampilkan pesan yang membantu dan tawarkan percobaan ulang yang relevan.
Acara
selection_changedSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
files_savedSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
list_loadedSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
file_restoredSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
file_deletedSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
share_sheet_closedSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
operation_cancelledSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
files_errorSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
Pertanyaan yang diajukan pengembang
Apakah Share berarti “terkirim”?
Tidak. OS tidak menyediakan bukti keberhasilan penerima yang dapat diandalkan di sini. Tampilkan “share sheet closed”.
Bagaimana cara kerja langganan?
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.
Panduan terkait
Untuk bantuan, beri tahu kami plugin dan perangkat yang Anda gunakan, tindakan yang Anda coba, dan apa yang terjadi. Gunakan contoh tanpa data pribadi. Jangan pernah membagikan kunci atau file pribadi Anda.