Wcześniejszy natywny interfejs Photo Editor. Edycja i eksport w bieżącej wersji beta są nadal testowane.
Wcześniejszy natywny interfejs Photo Editor. Edycja i eksport w bieżącej wersji beta są nadal testowane.
← Wszystkie natywne przewodniki

Xodera Plugins · Bubble Native

Xodera Photo Editor Native

Przekształć wybrane zdjęcie w spójny awatar, obraz produktu lub załącznik raportu. Przytnij, obróć i zmień jego rozmiar, a następnie zapisz wyeksportowaną kopię w aplikacji.

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.

Dokumentacja przeglądnięta 6 listopad 2026

Praktyczne przykłady

Spójne awatary profilu przed przesłaniem

Użytkownicy powinni wybrać, która część ich zdjęcia pojawi się w kwadratowym obrazie profilu, zamiast akceptować dowolne przycięcie.

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

Poczekaj na `source_loaded`; Begin crop → Apply crop, z Rotate lub Undo w razie potrzeby. Po wyraźnym zapisaniu, Export image.

Tylko na `export_completed` użyj `output_uri`, `output_width`, `output_height` i `output_mime` jako wejść do swojego przepływu przesyłania plików. Następnie zapisz jego trwałe odwołanie w Profilu.

Jeśli użytkownik anuluje lub `editor_error` zostanie wywołany, zachowaj stary awatar. Wyczyść sesję przy zmianie konta, aby inny użytkownik nie mógł zobaczyć wersji roboczej.

Edycja tworzy lokalną kopię. Twoja aplikacja decyduje, jak ją zapisać lub przesłać.

Przygotuj spójne zdjęcia do marketplace lub katalogu

Różne kadrowanie i zbyt duże obrazy powodują nierówną strukturę katalogu i zwiększają rozmiar przesyłanego pliku.

`source_url = selected item photo`; `crop_aspect = the app’s chosen ratio`; `export_max_dimension`, `export_format` i `export_quality` pochodzą z Twojej polityki przesyłania.

Przytnij odpowiedni obszar, opcjonalnie Resize, a następnie Export image po potwierdzeniu przez użytkownika. Zachowaj oryginalny plik/odwołanie osobno.

Sprawdź `output_width`, `output_height`, `output_bytes` i `output_mime` przed zapisaniem wyniku przez Twój proces przesyłania. Przechowaj odniesienie do powstałego obrazu w elemencie Item.

Jeśli eksport się nie powiedzie lub wynik narusza Twoją politykę przesyłania, pokaż `error_code` i pozwól użytkownikowi go poprawić. Nie nadpisuj poprzedniego obrazu elementu Item przed potwierdzeniem przesyłania.

Edycja tworzy lokalną kopię. Twoja aplikacja decyduje, jak ją zapisać lub przesłać.

Utwórz wykadrowaną kopię obrazu do raportu terenowego

Technik może potrzebować zbliżenia jednego uszkodzonego elementu, zachowując jednocześnie oryginalny obraz raportu.

`source_url = Current Report Photo’s source`; `document_context = the report/account reference`; współczynnik przycięcia może pozostać nieograniczony.

Begin crop → Apply crop, a następnie użyj Undo/Redo do porównania edycji. Export image tworzy edytowaną kopię; aplikacja pyta, czy dołączyć tę kopię do Raportu.

Użyj `has_changes`, `can_undo`, `can_redo` i `output_uri`. Przechowaj oryginalne i edytowane odwołania w oddzielnych polach aplikacji po pomyślnym przesłaniu.

Cancel crop lub Reset edits przywraca ścieżkę edycji; anulowanie musi pozostawić oryginalny załącznik Raportu niezmieniony.

Edycja tworzy lokalną kopię. Twoja aplikacja decyduje, jak ją zapisać lub przesłać.

Co działa teraz

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.

Zbuduj przepływ pracy

Użyj dostępnych poniżej akcji beta i przetestuj wynik na docelowych urządzeniach.

Te przykłady używają rekordów aplikacji, takich jak Lesson, Message i Order. Zastąp je własnymi typami danych i nazwami elementów. Przykładowe adresy mediów należy zastąpić własnymi plikami.

  1. Ustaw source_url na wybrany obraz. Użyj document_context do identyfikacji konta i edytowanego rekordu, więc zmiana rekordu usuwa poprzednie zdjęcie.

  2. Po source_loaded uruchom Begin crop. Wybierz 1:1 jako awatar, dostosuj przycięcie i użyj Apply crop. Cancel crop pozostawia obraz niezmieniony.

  3. Użyj Rotate, Flip lub Resize w razie potrzeby. Undo i Redo przechodzą przez zakończone edycje; Reset edits przywraca oryginalny obraz.

  4. Uruchom Export image. Na export_completed odczytaj output_uri, output_width, output_height i output_mime. Zapisz lub prześlij tę kopię przy użyciu wybranego przez Ciebie przepływu zapisu plików, a następnie przechowaj zapisany plik w rekordzie.

Diagram przepływu pracy — nie zrzut ekranu aplikacji

Skonfiguruj raz

Aktywacja klucza jest planowana dla tej wtyczki. Utwórz lub wybierz swój projekt aplikacji Bubble w BestPlugins → Dashboard → Plugins. Wybierz Xodera Photo Editor Native, skopiuj jego klucz, a następnie otwórz Bubble → Plugins → Xodera Photo Editor Native i wklej go do licensing_api_key. Zapisz raz; potem użyj poniższych działań. Każda wtyczka w każdym projekcie ma własny klucz.

Najpierw wybierz lub zrób zdjęcie w swojej aplikacji. Podaj edytorowi uzyskany adres czytelnego obrazu. Uprawnienia do kamery i biblioteki zdjęć należą do używanego selektora.

Skonfiguruj raz
  1. Utwórz lub wybierz swój projekt aplikacji Bubble w BestPlugins → Dashboard → Plugins.
  2. Wybierz tę wtyczkę i skopiuj jej klucz projektu.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Dodaj element, wybierz dane aplikacji i zbuduj poniższy przepływ pracy.
  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.
Instalacja i subskrypcja

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.

Zapisz wynik w swojej aplikacji

Zapisz przesłany lub trwale zapisany obraz w Profile.image lub w swoim polu załącznika. output_uri jest plikiem tymczasowym na urządzeniu, więc najpierw zapisz ten plik wybranym przez siebie przepływem pracy. Następnie przechowaj output_width, output_height i output_mime jako metadane. Zachowaj oryginalny obraz, jeśli potrzebujesz obu wersji.

Błąd, anulowanie i odzyskiwanie

Na source_load_failed lub editor_error wyświetl error_code i zaoferuj Load source. Cancel operation przestaje akceptować nieukończony wynik; poczekaj aż is_busy=no przed rozpoczęciem kolejnej edycji. Clear session czyści edytor, a nie obraz już zapisany w innym miejscu.

Możliwości i ograniczenia

Eksport JPEG i PNG; jakość 0–1; maksymalny wymiar wyjściowy 1–4096 pikseli. Wejście: do 15 MiB i 20 megapikseli. Do 20 zakończonych edycji. Opcje przycinania: dowolne, 1:1, 4:3, 3:4 oraz 16:9. Brak wbudowanej kamery, filtrów, nakładek tekstowych, korekcji perspektywy, eksportu WebP ani automatycznego przesyłania.

Ustawienia, akcje i wyniki

Użyj tych nazw w Bubble. Planowane funkcje są oznaczone osobno.

Dostępne ustawienia beta

Ustawienia elementu

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

Stany

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

Zdarzenia

source_loadedsource_load_failededit_appliededit_undoneedit_redoneeditor_resetexport_startedexport_completedoperation_cancellededitor_error

Akcje i ich wejścia

Load sourceBegin cropApply cropCancel cropRotateFlipResizeUndoRedoReset editsExport imageCancel operationClear session
Ustawienia elementu · 12
source_urltext · Domyślne: ""
Przykładowa wartośćhttps://bestplugins.online/native-samples/avatar.jpg
Przykładowe wyrażenie BubbleSelected Profile's image_url
Adres wybranego pliku audio, wideo lub obrazu. Użyj typu pliku obsługiwanego przez tę wtyczkę.
document_contexttext · Domyślne: ""
Przykładowa wartość<current-user-id>
Przykładowe wyrażenie BubbleCurrent User's unique id
Stała wartość dla tego konta lub rekordu. Użyj tej samej wartości przy przywracaniu zapisanych plików lub wersji roboczych.
is_activeyes_no · Domyślne: true
Przykładowa wartośćyes
Przykładowe wyrażenie BubbleGuideHost's view_is_active (your yes/no custom state)
Ustaw tak, gdy ten widok jest otwarty. Ustaw nie przy zamykaniu, aby odtwarzanie lub bieżąca praca mogły się zatrzymać.
disabledyes_no · Domyślne: false
Przykładowa wartośćno
Przykładowe wyrażenie BubbleGuideHost's is_busy (your yes/no custom state)
Wyłącz element, gdy aplikacja jest zajęta lub akcja jest niedostępna.
show_controlsyes_no · Domyślne: true
Przykładowa wartośćyes
Przykładowe wyrażenie BubbleApp Settings' show_editor_controls
Pokaż lub ukryj wbudowane kontrolki.
crop_aspecttext · Domyślne: "free"
Przykładowa wartość1:1
Przykładowe wyrażenie BubbleAvatar Settings' crop_ratio
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
export_formattext · Domyślne: "jpeg"
Przykładowa wartośćjpeg
Przykładowe wyrażenie BubbleFormat Dropdown's value
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
export_qualitynumber · Domyślne: 0.85
Przykładowa wartość0.85
Przykładowe wyrażenie BubbleImage Settings' quality
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
export_max_dimensionnumber · Domyślne: 2048
Przykładowa wartość2048
Przykładowe wyrażenie BubbleImage Settings' max_side
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
allow_upscaleyes_no · Domyślne: false
Przykładowa wartośćno
Przykładowe wyrażenie BubbleAllow upscale Checkbox is checked
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
ui_text_jsontext · Domyślne: ""
Przykładowa wartość{}
Przykładowe wyrażenie BubbleApp Settings' player_labels_json (supported keys only)
Opcjonalny JSON z obsługiwanymi etykietami przycisków. Pozostaw puste, aby użyć wbudowanego tekstu.
languagetext · Domyślne: "auto"
Przykładowa wartośćuk
Przykładowe wyrażenie BubbleCurrent User's preferred_language
Ustaw language=auto, aby podążał za obsługiwanym językiem urządzenia lub przeglądarki. Wprowadź obsługiwany kod języka, aby wybrać go explicite.
Akcje i ich wejścia · 13
Load source

Brak parametrów akcji

Begin crop

Brak parametrów akcji

Apply crop
origin_xnumber · Domyślne: —
Przykładowa wartość0
Przykładowe wyrażenie BubbleCrop Settings' x (or omit all rectangle inputs)
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
origin_ynumber · Domyślne: —
Przykładowa wartość0
Przykładowe wyrażenie BubbleCrop Settings' y (or omit all rectangle inputs)
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
widthnumber · Domyślne: —
Przykładowa wartość512
Przykładowe wyrażenie BubbleResize Width Input's value:converted to number
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
heightnumber · Domyślne: —
Przykładowa wartość512
Przykładowe wyrażenie BubbleResize Height Input's value:converted to number
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Cancel crop

Brak parametrów akcji

Rotate
degreesnumber · Domyślne: —
Przykładowa wartość90
Przykładowe wyrażenie BubbleRotation Dropdown's value
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Flip
axistext · Domyślne: —
Przykładowa wartośćhorizontal
Przykładowe wyrażenie BubbleFlip Direction Dropdown's value
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Resize
widthnumber · Domyślne: —
Przykładowa wartość512
Przykładowe wyrażenie BubbleResize Width Input's value:converted to number
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
heightnumber · Domyślne: —
Przykładowa wartość512
Przykładowe wyrażenie BubbleResize Height Input's value:converted to number
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Undo

Brak parametrów akcji

Redo

Brak parametrów akcji

Reset edits

Brak parametrów akcji

Export image

Brak parametrów akcji

Cancel operation

Brak parametrów akcji

Clear session

Brak parametrów akcji

Stany i zdarzenia

Stany

editor_status · text

Aktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu.

is_busy · yes_no

Praca wciąż trwa. Poczekaj przed rozpoczęciem kolejnej akcji.

has_image · yes_no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

has_changes · yes_no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

can_undo · yes_no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

can_redo · yes_no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

image_width · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

image_height · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

output_uri · text

Lokalizacja pliku na tym urządzeniu. Zapisz lub prześlij plik osobno, jeśli musi być przechowywany online.

output_width · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

output_height · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

output_bytes · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

output_mime · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

error_code · text

Informacje o błędzie ostatniej akcji. Wyświetl pomocną wiadomość i zaoferuj odpowiednią ponowną próbę.

crop_active · yes_no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

crop_rect_json · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

Zdarzenia

source_loaded

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

source_load_failed

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

edit_applied

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

edit_undone

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

edit_redone

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

editor_reset

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

export_started

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

export_completed

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

operation_cancelled

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

editor_error

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

Pytania, które zadają programiści

Czy output_uri jest plikiem Bubble ?

Nie. To jest lokalna ścieżka pamięci podręcznej. Zachowaj ją przy użyciu sprawdzonego lokalnego zapisywacza lub przesyłacza przed zapisaniem odwołania do pliku w chmurze.

Jak działa subskrypcja?

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.

Powiązane przewodniki

Aby uzyskać pomoc, podaj, której wtyczki i urządzenia używasz, jaką akcję podjąłeś i co się stało. Użyj przykładu bez danych osobowych. Nigdy nie udostępniaj swojego klucza ani prywatnych plików.