
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. يحتفظ النموذج بمعرفات الملفات الناتجة حتى يقوم سير عمل الإرسال المنفصل بتحميل الملفات الموافق عليها.
استخدم `selection_count`، `file_names`، `file_sizes` و `saved_file_ids` لعرض قائمة المراجعة. نسخة مُدارة محفوظة تحتفظ بالأصل الخاص بالمتصل.
اختيار ملغى ليس تقريرًا مُرسلًا. في `files_error`، احتفظ بمعرفات محلية مقبولة بالفعل وأظهر `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. احفظ معرف الملف المُرجع فقط في الجهاز/السياق المطابق، ثم 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` دون الإبلاغ عن نجاح للمتلقي.
تظل الملفات على هذا الجهاز حتى يتم مشاركتها أو تحميلها بشكل منفصل.
ما يعمل الآن
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، أو استخدم Load local source للحصول على ملف قابل للقراءة تم إنتاجه بواسطة محرر الصور أو المسجل. بعد selection_changed، اقرأ قوائم الملفات المطابقة؛ Select picked file يختار فهرسًا.
شغّل Save selection locally. بعد files_saved، احتفظ بـ saved_file_ids في سجل المرفقات المحلي لتطبيقك. List saved files يعرض النسخ المحفوظة؛ Restore saved file يفتح المعرف المحفوظ المحدد.
Share selected file يفتح قائمة المشاركة النظامية. share_sheet_closed يعني فقط إغلاق القائمة. Delete saved copy يحتاج إلى المعرف المحدد و confirm=yes.
قم بالإعداد مرة واحدة
أنشئ أو اختر مشروع تطبيق Bubble الخاص بك في BestPlugins → Dashboard → Plugins. اختر Xodera Offline Files Native، انسخ مفتاحه، ثم افتح Bubble → Plugins → Xodera Offline Files Native والصقه في licensing_api_key. احفظ مرة واحدة؛ ثم استخدم الإجراءات أدناه. لكل مكوّن إضافي في كل مشروع مفتاحه الخاص.
استخدم تطبيقًا أصليًا مع إمكانية الوصول إلى الملفات المختارة. عيّن document_context ثابتًا للحساب أو التقرير حتى تبقى ملفاته المحفوظة مُجمّعة بشكل صحيح.
قم بالإعداد مرة واحدة
- أنشئ أو اختر مشروع تطبيق Bubble الخاص بك في BestPlugins → Dashboard → Plugins.
- اختر هذا المكوّن الإضافي وانسخ مفتاح مشروعه.
- 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، معرف الملف المحفوظ، display_name، mime_type و size_bytes. يعمل هذا المعرف فقط على نفس الجهاز ولنفس الحساب أو التقرير. للمرفق عبر الإنترنت، حمّل الملف عبر سير عمل منفصل واحفظ المرجع المُرجع للملف عبر الإنترنت.
الفشل، الإلغاء والاستعادة
يعيد منتقٍ ملغى operation_cancelled؛ لا يرسل النموذج. أثناء native_pending=yes، انتظر إغلاق منتقٍ الملفات أو قائمة المشاركة قبل فتح آخر. Clear session يمسح الاختيار الحالي لكنه يحتفظ بالنسخ المحفوظة. إذا كان ملف مفقودًا، اسمح للمستخدم باختياره مرة أخرى.
القدرات والحدود
اختر ملفات 1–20 مرة واحدة. الحد لكل ملف: 1 بايت–256 MiB، مع حد أدنى إذا اخترت. فلاتر نوع الملف لا تتحقق من الفيروسات. معرفات ومسارات ملفات الجهاز لا تعمل كروابط تنزيل سحابي. النسخ المحلية ليست تخزينًا مشفرًا ويمكن فقدانها إذا تم حذف بيانات التطبيق.
الإعدادات، الإجراءات والنتائج
استخدم هذه الأسماء في 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عند حدوث هذا الحدث، اقرأ الحالات المرتبطة من نفس العنصر.
الأسئلة التي يطرحها المطورون
هل تعني المشاركة “أُرسلت”?
لا. نظام التشغيل لا يوفر إيصال نجاح مستلم موثوق هنا. اعرض “تم إغلاق ورقة المشاركة”.
كيف يعمل الاشتراك؟
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.
الأدلة ذات الصلة
للحصول على المساعدة، أخبرنا بأي إضافة وجهاز تستخدمهما، الإجراء الذي جربته وما حدث. استخدم مثالًا بدون بيانات شخصية. لا تشارك مفتاحك أو ملفاتك الخاصة أبدًا.