
Xodera Plugins · Bubble Native
Xodera Photo Editor 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
مثالهای عملی
آواتارهای پروفایل سازگار قبل از بارگذاری
کاربران باید بخشی از عکس خود را که در تصویر پروفایل مربعی نمایش داده میشود انتخاب کنند، نه اینکه برش دلخواهی را بپذیرند.
`source_url = selected profile image`; `crop_aspect = "1:1"`; `document_context = the account’s stable reference`.
منتظر `source_loaded` باشید؛ Begin crop → Apply crop، با Rotate یا Undo در صورت نیاز. هنگام ذخیره صریح، Export image.
فقط در `export_completed`، از `output_uri`، `output_width`، `output_height` و `output_mime` به عنوان ورودیهای جریان کاری بارگذاری فایل خود استفاده کنید. پس از آن مرجع پایدار آن را در پروفایل ذخیره کنید.
اگر کاربر لغو کند یا `editor_error` فعال شود، آواتار قبلی را نگه دارید. هنگام تغییر حساب، جلسه را پاک کنید تا کاربر دیگر نتواند پیشنویس را ببیند.
ویرایش یک نسخه محلی ایجاد میکند. برنامه شما تصمیم میگیرد چگونه آن را ذخیره یا بارگذاری کند.
عکسهای سازگار برای بازار یا کاتالوگ را آماده کنید
قاببندی متفاوت و تصاویر با اندازهٔ بیشازحد بزرگ باعث ناهماهنگی کاتالوگ میشود و حجم بارگذاری را افزایش میدهد.
`source_url = selected item photo`؛ `crop_aspect = the app’s chosen ratio`؛ `export_max_dimension`، `export_format` و `export_quality` از سیاست بارگذاری شما میآیند.
منطقه مربوطه را برش دهید، بهصورت اختیاری Resize، سپس پس از تأیید کاربر Export image کنید. فایل/مرجع اصلی را بهصورت جداگانه نگه دارید.
قبل از اینکه جریان کاری بارگذاری شما نتیجه را ذخیره کند، `output_width`، `output_height`، `output_bytes` و `output_mime` را بررسی کنید. مرجع تصویر حاصل را بر روی آیتم ذخیره کنید.
اگر خروجی شکست بخورد یا نتیجه با سیاست بارگذاری شما مغایرت داشته باشد، `error_code` را نشان دهید و اجازه دهید کاربر آن را اصلاح کند. قبل از تأیید بارگذاری، تصویر قبلی آیتم را بازنویسی نکنید.
ویرایش یک نسخه محلی ایجاد میکند. برنامه شما تصمیم میگیرد چگونه آن را ذخیره یا بارگذاری کند.
یک نسخه تصویر متمرکز برای گزارش میدانی ایجاد کنید
یک تکنسین ممکن است نیاز به نمای نزدیک یک بخش آسیبدیده داشته باشد در حالی که تصویر گزارش اصلی حفظ میشود.
`source_url = Current Report Photo’s source`؛ `document_context = the report/account reference`؛ نسبت برش میتواند بدون محدودیت باقی بماند.
Begin crop → Apply crop، سپس از Undo/Redo برای مقایسه ویرایشها استفاده کنید. Export image نسخه ویرایششده را ایجاد میکند؛ برنامه شما میپرسد آیا آن نسخه را به گزارش پیوست کنید یا نه.
از `has_changes`، `can_undo`، `can_redo` و `output_uri` استفاده کنید. پس از بارگذاری موفق، مراجع اصلی و ویرایششده را در فیلدهای جداگانه برنامه ذخیره کنید.
Cancel crop یا Reset edits مسیر ویرایش را باز میگرداند؛ لغو باید پیوست گزارش اصلی را بدون تغییر بگذارد.
ویرایش یک نسخه محلی ایجاد میکند. برنامه شما تصمیم میگیرد چگونه آن را ذخیره یا بارگذاری کند.
آنچه اکنون کار میکند
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 استفاده میکنند. آنها را با انواع داده و نامهای عنصر خود جایگزین کنید. آدرسهای رسانهای نمونه باید با فایلهای خود جایگزین شوند.
source_url را به تصویر انتخابشده تنظیم کنید. از document_context برای شناسایی حساب و رکوردی که در حال ویرایش است استفاده کنید، بهطوری که تغییر رکورد عکس قبلی را پاک کند.
پس از source_loaded، Begin crop را اجرا کنید. برای آواتار 1:1 را انتخاب کنید، برش را تنظیم کنید و از Apply crop استفاده کنید. Cancel crop تصویر را بدون تغییر میگذارد.
در صورت نیاز از Rotate، Flip یا Resize استفاده کنید. Undo و Redo بین ویرایشهای تکمیلشده حرکت میکنند؛ Reset edits تصویر اصلی را بازمیگرداند.
Export image را اجرا کنید. در export_completed، output_uri، output_width، output_height و output_mime را بخوانید. آن نسخه را با جریان کاری ذخیرهسازی فایل انتخابی خود ذخیره یا بارگذاری کنید، سپس فایل ذخیرهشده را در رکورد ذخیره کنید.
یکبار پیکربندی کنید
فعالسازی کلید برای این افزونه برنامهریزی شده است. پروژهٔ برنامهٔ Bubble خود را در BestPlugins → Dashboard → Plugins ایجاد یا انتخاب کنید. Xodera Photo Editor Native را انتخاب کنید، کلید آن را کپی کنید، سپس Bubble → Plugins → Xodera Photo Editor Native را باز کنید و در licensing_api_key بچسبانید. یکبار ذخیره کنید؛ سپس از اقدامات زیر استفاده کنید. هر افزونه در هر پروژه کلید مخصوص به خود را دارد.
ابتدا تصویر را با برنامهٔ خود انتخاب یا ضبط کنید. آدرس تصویر قابل خواندن حاصل را به ویرایشگر بدهید. دسترسیهای دوربین و کتابخانهٔ عکس متعلق به انتخابکنندهای است که استفاده میکنید.
یکبار پیکربندی کنید
- پروژه برنامه 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.
نتیجه را در برنامه خود ذخیره کنید
تصویر بارگذاریشده یا بهصورت دائمی ذخیرهشده را در Profile.image یا فیلد پیوست خود ذخیره کنید. output_uri یک فایل موقت بر روی دستگاه است، بنابراین ابتدا آن فایل را با جریان کاری انتخابی خود ذخیره کنید. سپس output_width، output_height و output_mime را بهعنوان فراداده ذخیره کنید. اگر به هر دو نسخه نیاز دارید، تصویر اصلی را نگه دارید.
خطا، لغو و بازیابی
در source_load_failed یا editor_error، error_code را نشان دهید و Load source را ارائه کنید. Cancel operation دریافت نتیجهٔ ناتمام را متوقف میکند؛ قبل از شروع ویرایش دیگر تا is_busy=no صبر کنید. Clear session ویرایشگر را پاک میکند، نه تصویری که قبلاً در جای دیگری ذخیره شده است.
قابلیتها و محدودیتها
صادرات JPEG و PNG؛ کیفیت 0–1؛ حداکثر طول ضلع تصویر خروجی 1–4096 پیکسل. ورودی: حداکثر 15 MiB و 20 مگاپیکسل. حداکثر 20 ویرایش تکمیلشده. گزینههای برش: آزاد، 1:1، 4:3، 3:4 و 16:9. دوربین، فیلترها، لایههای متنی، تصحیح پرسپکتیو، صادرات WebP یا بارگذاری خودکار داخلی وجود ندارد.
تنظیمات، اقدامات و نتایج
از این نامها در Bubble استفاده کنید. ویژگیهای برنامهریزیشده بهصورت جداگانه علامتگذاری شدهاند.
تنظیمات بتای موجود
تنظیمات عنصر
source_url · textdocument_context · textis_active · yes_nodisabled · yes_noshow_controls · yes_nocrop_aspect · textexport_format · textexport_quality · numberexport_max_dimension · numberallow_upscale · yes_noui_text_json · textlanguage · textوضعیتها
editor_status · textis_busy · yes_nohas_image · yes_nohas_changes · yes_nocan_undo · yes_nocan_redo · yes_noimage_width · numberimage_height · numberoutput_uri · textoutput_width · numberoutput_height · numberoutput_bytes · numberoutput_mime · texterror_code · textcrop_active · yes_nocrop_rect_json · textرویدادها
source_loadedsource_load_failededit_appliededit_undoneedit_redoneeditor_resetexport_startedexport_completedoperation_cancellededitor_errorاقدامات و ورودیهای آنها
Load sourceBegin cropApply cropCancel cropRotateFlipResizeUndoRedoReset editsExport imageCancel operationClear sessionتنظیمات عنصر · 12
source_urltext · پیشفرض: ""- مقدار مثال
https://bestplugins.online/native-samples/avatar.jpg - مثال Bubble عبارت
Selected Profile's image_url - آدرس فایل صوتی، ویدئویی یا تصویری انتخابشده. از نوع فایلی استفاده کنید که این افزونه پشتیبانی میکند.
document_contexttext · پیشفرض: ""- مقدار مثال
<current-user-id> - مثال Bubble عبارت
Current User's unique id - مقدار ثابت برای این حساب یا رکورد. هنگام بازگردانی فایلها یا پیشنویسهای ذخیرهشده آن، از همان مقدار استفاده کنید.
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 - نمایش یا مخفیسازی کنترلهای داخلی.
crop_aspecttext · پیشفرض: "free"- مقدار مثال
1:1 - مثال Bubble عبارت
Avatar Settings' crop_ratio - از مقدار رکورد تجاری فعلی استفاده کنید؛ آن را نسبت به محدودیتهای زیر اعتبارسنجی کنید.
export_formattext · پیشفرض: "jpeg"- مقدار مثال
jpeg - مثال Bubble عبارت
Format Dropdown's value - از مقدار رکورد تجاری فعلی استفاده کنید؛ آن را نسبت به محدودیتهای زیر اعتبارسنجی کنید.
export_qualitynumber · پیشفرض: 0.85- مقدار مثال
0.85 - مثال Bubble عبارت
Image Settings' quality - از مقدار رکورد تجاری فعلی استفاده کنید؛ آن را نسبت به محدودیتهای زیر اعتبارسنجی کنید.
export_max_dimensionnumber · پیشفرض: 2048- مقدار مثال
2048 - مثال Bubble عبارت
Image Settings' max_side - از مقدار رکورد تجاری فعلی استفاده کنید؛ آن را نسبت به محدودیتهای زیر اعتبارسنجی کنید.
allow_upscaleyes_no · پیشفرض: false- مقدار مثال
no - مثال Bubble عبارت
Allow upscale Checkbox is checked - از مقدار رکورد تجاری فعلی استفاده کنید؛ آن را نسبت به محدودیتهای زیر اعتبارسنجی کنید.
ui_text_jsontext · پیشفرض: ""- مقدار مثال
{} - مثال Bubble عبارت
App Settings' player_labels_json (supported keys only) - JSON اختیاری با برچسبهای دکمه پشتیبانیشده. برای استفاده از متن داخلی خالی بگذارید.
languagetext · پیشفرض: "auto"- مقدار مثال
uk - مثال Bubble عبارت
Current User's preferred_language - language=auto را تنظیم کنید تا زبان دستگاه یا مرورگر پشتیبانیشده را دنبال کند. برای انتخاب صریح، کد زبان پشتیبانیشده را وارد کنید.
اقدامات و ورودیهای آنها · 13
Load source
پارامترهای اقدام وجود ندارد
Begin crop
پارامترهای اقدام وجود ندارد
Apply crop
origin_xnumber · پیشفرض: —- مقدار مثال
0 - مثال Bubble عبارت
Crop Settings' x (or omit all rectangle inputs) - از مقدار رکورد تجاری فعلی استفاده کنید؛ آن را نسبت به محدودیتهای زیر اعتبارسنجی کنید.
origin_ynumber · پیشفرض: —- مقدار مثال
0 - مثال Bubble عبارت
Crop Settings' y (or omit all rectangle inputs) - از مقدار رکورد تجاری فعلی استفاده کنید؛ آن را نسبت به محدودیتهای زیر اعتبارسنجی کنید.
widthnumber · پیشفرض: —- مقدار مثال
512 - مثال Bubble عبارت
Resize Width Input's value:converted to number - از مقدار رکورد تجاری فعلی استفاده کنید؛ آن را نسبت به محدودیتهای زیر اعتبارسنجی کنید.
heightnumber · پیشفرض: —- مقدار مثال
512 - مثال Bubble عبارت
Resize Height Input's value:converted to number - از مقدار رکورد تجاری فعلی استفاده کنید؛ آن را نسبت به محدودیتهای زیر اعتبارسنجی کنید.
Cancel crop
پارامترهای اقدام وجود ندارد
Rotate
degreesnumber · پیشفرض: —- مقدار مثال
90 - مثال Bubble عبارت
Rotation Dropdown's value - از مقدار رکورد تجاری فعلی استفاده کنید؛ آن را نسبت به محدودیتهای زیر اعتبارسنجی کنید.
Flip
axistext · پیشفرض: —- مقدار مثال
horizontal - مثال Bubble عبارت
Flip Direction Dropdown's value - از مقدار رکورد تجاری فعلی استفاده کنید؛ آن را نسبت به محدودیتهای زیر اعتبارسنجی کنید.
Resize
widthnumber · پیشفرض: —- مقدار مثال
512 - مثال Bubble عبارت
Resize Width Input's value:converted to number - از مقدار رکورد تجاری فعلی استفاده کنید؛ آن را نسبت به محدودیتهای زیر اعتبارسنجی کنید.
heightnumber · پیشفرض: —- مقدار مثال
512 - مثال Bubble عبارت
Resize Height Input's value:converted to number - از مقدار رکورد تجاری فعلی استفاده کنید؛ آن را نسبت به محدودیتهای زیر اعتبارسنجی کنید.
Undo
پارامترهای اقدام وجود ندارد
Redo
پارامترهای اقدام وجود ندارد
Reset edits
پارامترهای اقدام وجود ندارد
Export image
پارامترهای اقدام وجود ندارد
Cancel operation
پارامترهای اقدام وجود ندارد
Clear session
پارامترهای اقدام وجود ندارد
وضعیتها و رویدادها
وضعیتها
editor_status · textنتیجه فعلی این عمل. قبل از ذخیره موفقیت، از رویداد تکمیل مطابقتدار استفاده کنید.
is_busy · yes_noکار هنوز در حال انجام است. پیش از شروع عمل دیگری صبر کنید.
has_image · yes_noمقدار فعلی مورد انتخابشده. پس از رویداد مرتبط آن را بخوانید.
has_changes · yes_noمقدار فعلی مورد انتخابشده. پس از رویداد مرتبط آن را بخوانید.
can_undo · yes_noمقدار فعلی مورد انتخابشده. پس از رویداد مرتبط آن را بخوانید.
can_redo · yes_noمقدار فعلی مورد انتخابشده. پس از رویداد مرتبط آن را بخوانید.
image_width · numberمقدار فعلی مورد انتخابشده. پس از رویداد مرتبط آن را بخوانید.
image_height · numberمقدار فعلی مورد انتخابشده. پس از رویداد مرتبط آن را بخوانید.
output_uri · textموقعیت فایل روی این دستگاه. اگر باید آنلاین نگه داشته شود، فایل را جداگانه ذخیره یا بارگذاری کنید.
output_width · numberمقدار فعلی مورد انتخابشده. پس از رویداد مرتبط آن را بخوانید.
output_height · numberمقدار فعلی مورد انتخابشده. پس از رویداد مرتبط آن را بخوانید.
output_bytes · numberمقدار فعلی مورد انتخابشده. پس از رویداد مرتبط آن را بخوانید.
output_mime · textمقدار فعلی مورد انتخابشده. پس از رویداد مرتبط آن را بخوانید.
error_code · textاطلاعات خطا برای آخرین عمل. پیام مفید نشان دهید و گزینهٔ تلاش مجدد مرتبط را ارائه دهید.
crop_active · yes_noمقدار فعلی مورد انتخابشده. پس از رویداد مرتبط آن را بخوانید.
crop_rect_json · textمقدار فعلی مورد انتخابشده. پس از رویداد مرتبط آن را بخوانید.
رویدادها
source_loadedهنگامی که این رویداد رخ میدهد، وضعیتهای مرتبط را از همان عنصر بخوانید.
source_load_failedهنگامی که این رویداد رخ میدهد، وضعیتهای مرتبط را از همان عنصر بخوانید.
edit_appliedهنگامی که این رویداد رخ میدهد، وضعیتهای مرتبط را از همان عنصر بخوانید.
edit_undoneهنگامی که این رویداد رخ میدهد، وضعیتهای مرتبط را از همان عنصر بخوانید.
edit_redoneهنگامی که این رویداد رخ میدهد، وضعیتهای مرتبط را از همان عنصر بخوانید.
editor_resetهنگامی که این رویداد رخ میدهد، وضعیتهای مرتبط را از همان عنصر بخوانید.
export_startedهنگامی که این رویداد رخ میدهد، وضعیتهای مرتبط را از همان عنصر بخوانید.
export_completedهنگامی که این رویداد رخ میدهد، وضعیتهای مرتبط را از همان عنصر بخوانید.
operation_cancelledهنگامی که این رویداد رخ میدهد، وضعیتهای مرتبط را از همان عنصر بخوانید.
editor_errorهنگامی که این رویداد رخ میدهد، وضعیتهای مرتبط را از همان عنصر بخوانید.
سؤالاتی که توسعهدهندگان میپرسند
آیا output_uri یک فایل Bubble است؟
نه. این یک مسیر کش محلی است. آن را از طریق یک ذخیرهکننده یا بارگذار محلی معتبر حفظ کنید قبل از ذخیرهسازی مرجع فایل ابری.
اشتراک چگونه کار میکند؟
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.
راهنماهای مرتبط
برای دریافت کمک، به ما بگویید از کدام افزونه و دستگاه استفاده میکنید، عملی که امتحان کردید و چه اتفاقی افتاد. از مثالی بدون دادههای شخصی استفاده کنید. هرگز کلید یا فایلهای خصوصی خود را به اشتراک نگذارید.