Interfaz nativa anterior de Photo Editor. La edición y exportación en la beta actual aún están en pruebas.
Interfaz nativa anterior de Photo Editor. La edición y exportación en la beta actual aún están en pruebas.
← Todas las guías nativas

Xodera Plugins · Bubble Native

Xodera Photo Editor Native

Convierta una foto seleccionada en un avatar, imagen de producto o adjunto de informe coherente. Recorte, rote y cambie su tamaño, luego guarde la copia exportada en su aplicació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.

Documentación revisada 6 noviembre 2026

Ejemplos prácticos

Avatares de perfil consistentes antes de cargar

Los usuarios deben elegir qué parte de su foto aparece en una imagen de perfil cuadrada en lugar de aceptar un recorte arbitrario.

`source_url = selected profile image`; `crop_aspect = "1:1"`; `document_context = the account’s stable reference`.

Espere a `source_loaded`; Begin crop → Apply crop, con Rotate o Undo según sea necesario. Al guardar explícitamente, Export image.

Solo en `export_completed`, use `output_uri`, `output_width`, `output_height` y `output_mime` como entradas para su flujo de trabajo de carga de archivos. Guarde su referencia duradera en el Perfil después.

Si el usuario cancela o `editor_error` se dispara, conserve el avatar anterior. Borre la sesión al cambiar de cuenta para que otro usuario no pueda ver el borrador.

La edición crea una copia local. Su aplicación decide cómo guardarla o cargarla.

Prepare fotos consistentes para el mercado o catálogo

Un encuadre diferente y imágenes sobredimensionadas hacen que el catálogo sea irregular y aumentan el tamaño de la carga.

`source_url = selected item photo`; `crop_aspect = the app’s chosen ratio`; `export_max_dimension`, `export_format` y `export_quality` provienen de su política de carga.

Recorte el área relevante, opcionalmente Resize, luego Export image después de que el usuario confirme. Mantenga el archivo/referencia original por separado.

Verifique `output_width`, `output_height`, `output_bytes` y `output_mime` antes de que su flujo de trabajo de carga guarde el resultado. Almacene la referencia de la imagen resultante en el Ítem.

Si la exportación falla o el resultado viola su política de carga, muestre `error_code` y permita que el usuario lo revise. No sobrescriba la imagen anterior del Ítem antes de la confirmación de carga.

La edición crea una copia local. Su aplicación decide cómo guardarla o cargarla.

Cree una copia de imagen enfocada para un informe de campo

Un técnico puede necesitar un primer plano de una pieza dañada mientras preserva la imagen original del informe.

`source_url = Current Report Photo’s source`; `document_context = the report/account reference`; la proporción de recorte puede permanecer sin restricciones.

Begin crop → Apply crop, luego use Undo/Redo para comparar ediciones. Export image crea la copia editada; su aplicación pregunta si se debe adjuntar esa copia al Informe.

Use `has_changes`, `can_undo`, `can_redo` y `output_uri`. Guarde las referencias originales y editadas en campos separados de la aplicación después de una carga exitosa.

Cancel crop o Reset edits restauran la ruta de edición; la cancelación debe dejar el archivo adjunto del Informe original sin cambios.

La edición crea una copia local. Su aplicación decide cómo guardarla o cargarla.

Lo que funciona ahora

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.

Crea el flujo de trabajo

Utiliza las acciones beta disponibles a continuación y prueba el resultado en tus dispositivos objetivo.

Estos ejemplos usan registros de aplicación como Lesson, Message y Order. Reemplácelos con sus propios tipos de datos y nombres de elementos. Las direcciones de medios de ejemplo deben ser sustituidas por sus propios archivos.

  1. Establezca source_url en la imagen elegida. Utilice document_context para identificar la cuenta y el registro que se está editando, de modo que al cambiar el registro se elimine la foto anterior.

  2. Después de source_loaded, ejecute Begin crop. Elija 1:1 para un avatar, ajuste el recorte y use Apply crop. Cancel crop deja la imagen sin cambios.

  3. Use Rotate, Flip o Resize si es necesario. Undo y Redo navegan por ediciones completadas; Reset edits restaura la imagen original.

  4. Ejecute Export image. En export_completed, lea output_uri, output_width, output_height y output_mime. Guarde o cargue esa copia usando su flujo de trabajo de guardado de archivos, luego almacene el archivo guardado en el registro.

Diagrama de flujo — no es una captura de pantalla de la aplicación

Configura una vez

La activación de clave está prevista para este complemento. Cree o elija su proyecto de aplicación Bubble en BestPlugins → Dashboard → Plugins. Elija Xodera Photo Editor Native, copie su clave, luego abra Bubble → Plugins → Xodera Photo Editor Native y péguela en licensing_api_key. Guarde una vez; luego use las acciones a continuación. Cada complemento en cada proyecto tiene su propia clave.

Seleccione o capture la imagen con su aplicación primero. Proporcione al editor la dirección de la imagen legible resultante. Los permisos de cámara y biblioteca de fotos pertenecen al selector que utilice.

Configura una vez
  1. Crea o elige tu proyecto de aplicación Bubble en BestPlugins → Dashboard → Plugins.
  2. Elige este complemento y copia su clave de proyecto.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Añade el elemento, elige los datos de tu aplicación y construye el flujo de trabajo a continuación.
  5. 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.
Instalación y suscripción

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.

Guarda el resultado en tu aplicación

Guarde la imagen cargada o guardada permanentemente en Profile.image o en su campo de adjunto. output_uri es un archivo temporal en el dispositivo, así que primero guarde ese archivo con el flujo de trabajo que haya elegido. Luego almacene output_width, output_height y output_mime como metadatos. Conserve la imagen original si necesita ambas versiones.

Fallo, cancelación y recuperación

En source_load_failed o editor_error, muestre error_code y ofrezca Load source. Cancel operation deja de aceptar el resultado sin terminar; espere hasta is_busy=no antes de iniciar otra edición. Clear session borra el editor, no una imagen ya guardada en otro lugar.

Capacidades y límites

Exportación JPEG y PNG; calidad 0–1; lado máximo de salida 1–4096 píxeles. Entrada: hasta 15 MiB y 20 megapíxeles. Hasta 20 ediciones completadas. Opciones de recorte: libre, 1:1, 4:3, 3:4 y 16:9. No hay cámara integrada, filtros, superposiciones de texto, corrección de perspectiva, exportación WebP ni carga automática.

Configuraciones, acciones y resultados

Utilice estos nombres en Bubble. Las funciones planificadas están marcadas por separado.

Configuraciones beta disponibles

Configuración del elemento

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

Estados

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

Eventos

source_loadedsource_load_failededit_appliededit_undoneedit_redoneeditor_resetexport_startedexport_completedoperation_cancellededitor_error

Acciones y sus entradas

Load sourceBegin cropApply cropCancel cropRotateFlipResizeUndoRedoReset editsExport imageCancel operationClear session
Configuración del elemento · 12
source_urltext · Predeterminado: ""
Valor de ejemplohttps://bestplugins.online/native-samples/avatar.jpg
Ejemplo de expresión BubbleSelected Profile's image_url
Dirección del archivo de audio, video o imagen seleccionado. Usa un tipo de archivo que este complemento admita.
document_contexttext · Predeterminado: ""
Valor de ejemplo<current-user-id>
Ejemplo de expresión BubbleCurrent User's unique id
Valor estable para esta cuenta o registro. Use el mismo valor al restaurar sus archivos o borradores guardados.
is_activeyes_no · Predeterminado: true
Valor de ejemployes
Ejemplo de expresión BubbleGuideHost's view_is_active (your yes/no custom state)
Establece sí mientras esta vista está abierta. Establece no al salir, para que la reproducción o el trabajo actual puedan detenerse.
disabledyes_no · Predeterminado: false
Valor de ejemplono
Ejemplo de expresión BubbleGuideHost's is_busy (your yes/no custom state)
Desactiva el elemento mientras tu aplicación está ocupada o esta acción no está disponible.
show_controlsyes_no · Predeterminado: true
Valor de ejemployes
Ejemplo de expresión BubbleApp Settings' show_editor_controls
Mostrar u ocultar los controles integrados.
crop_aspecttext · Predeterminado: "free"
Valor de ejemplo1:1
Ejemplo de expresión BubbleAvatar Settings' crop_ratio
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
export_formattext · Predeterminado: "jpeg"
Valor de ejemplojpeg
Ejemplo de expresión BubbleFormat Dropdown's value
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
export_qualitynumber · Predeterminado: 0.85
Valor de ejemplo0.85
Ejemplo de expresión BubbleImage Settings' quality
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
export_max_dimensionnumber · Predeterminado: 2048
Valor de ejemplo2048
Ejemplo de expresión BubbleImage Settings' max_side
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
allow_upscaleyes_no · Predeterminado: false
Valor de ejemplono
Ejemplo de expresión BubbleAllow upscale Checkbox is checked
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
ui_text_jsontext · Predeterminado: ""
Valor de ejemplo{}
Ejemplo de expresión BubbleApp Settings' player_labels_json (supported keys only)
JSON opcional con etiquetas de botón compatibles. Déjalo vacío para usar el texto incorporado.
languagetext · Predeterminado: "auto"
Valor de ejemplouk
Ejemplo de expresión BubbleCurrent User's preferred_language
Configurar language=auto para seguir un dispositivo o idioma de navegador compatible. Introduzca un código de idioma compatible para seleccionarlo explícitamente.
Acciones y sus entradas · 13
Load source

Sin parámetros de acción

Begin crop

Sin parámetros de acción

Apply crop
origin_xnumber · Predeterminado: —
Valor de ejemplo0
Ejemplo de expresión BubbleCrop Settings' x (or omit all rectangle inputs)
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
origin_ynumber · Predeterminado: —
Valor de ejemplo0
Ejemplo de expresión BubbleCrop Settings' y (or omit all rectangle inputs)
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
widthnumber · Predeterminado: —
Valor de ejemplo512
Ejemplo de expresión BubbleResize Width Input's value:converted to number
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
heightnumber · Predeterminado: —
Valor de ejemplo512
Ejemplo de expresión BubbleResize Height Input's value:converted to number
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
Cancel crop

Sin parámetros de acción

Rotate
degreesnumber · Predeterminado: —
Valor de ejemplo90
Ejemplo de expresión BubbleRotation Dropdown's value
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
Flip
axistext · Predeterminado: —
Valor de ejemplohorizontal
Ejemplo de expresión BubbleFlip Direction Dropdown's value
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
Resize
widthnumber · Predeterminado: —
Valor de ejemplo512
Ejemplo de expresión BubbleResize Width Input's value:converted to number
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
heightnumber · Predeterminado: —
Valor de ejemplo512
Ejemplo de expresión BubbleResize Height Input's value:converted to number
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
Undo

Sin parámetros de acción

Redo

Sin parámetros de acción

Reset edits

Sin parámetros de acción

Export image

Sin parámetros de acción

Cancel operation

Sin parámetros de acción

Clear session

Sin parámetros de acción

Estados y eventos

Estados

editor_status · text

Resultado actual de esta acción. Usa el evento de finalización correspondiente antes de guardar el éxito.

is_busy · yes_no

El trabajo sigue en progreso. Espere antes de iniciar otra acción.

has_image · yes_no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

has_changes · yes_no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

can_undo · yes_no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

can_redo · yes_no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

image_width · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

image_height · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

output_uri · text

Ubicación del archivo en este dispositivo. Guarde o cargue el archivo por separado si debe mantenerse en línea.

output_width · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

output_height · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

output_bytes · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

output_mime · text

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

error_code · text

Información de error de la última acción. Muestra un mensaje útil y ofrece el reintento correspondiente.

crop_active · yes_no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

crop_rect_json · text

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

Eventos

source_loaded

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

source_load_failed

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

edit_applied

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

edit_undone

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

edit_redone

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

editor_reset

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

export_started

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

export_completed

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

operation_cancelled

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

editor_error

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

Preguntas que hacen los desarrolladores

¿Es output_uri un archivo Bubble?

No. Es una ruta de caché local. Manténgala mediante un guardador o cargador local probado antes de almacenar una referencia de archivo en la nube.

¿Cómo funciona la suscripción?

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.

Guías relacionadas

Para obtener ayuda, indíquenos qué plugin y dispositivo utiliza, la acción que intentó y lo que ocurrió. Use un ejemplo sin datos personales. Nunca comparta su clave ni archivos privados.