Camera Capture (Mobile)
A production-ready native camera element for Bubble mobile apps. It supports a live custom camera, the device camera app, gallery picking, single and multiple capture, hosted Bubble uploads, save-to-gallery, sharing, alignment guides, collection management, and workflow states/events/actions.
SUPPORT & EXPRESS RESPONSES
For faster support, issue reports, or direct feedback, contact the developer here:
LinkedIn:
https://www.linkedin.com/in/ndimdonald/X (Twitter):
https://x.com/donald_ndimREQUIREMENTS
This plugin runs only in Bubble's native mobile environment. Test device-specific behavior in BubbleGo and in your iOS/Android build pipeline.
QUICK START
1. Add Camera Capture to a mobile page and give it a visible width and height.
2. Choose Capture source = custom for the live in-app camera, or native when your workflow will use Open native camera.
3. Use Take picture for the custom source. Use Open native camera for the device camera app.
4. Use Pick from gallery to accept existing images. The in-element Gallery button is optional and appears on the custom camera when enabled.
5. In single mode, use Captured image. In multiple mode, use Captured images and Multiple photo count. The list/count states are intentionally empty/0 in single mode.
6. A local image result is available immediately after native/gallery acceptance and hosted upload can finish afterward. Last file URL updates to the hosted URL when upload succeeds.
7. Save to gallery saves the current image in single mode or every held image in multiple mode. Share last opens the native share sheet for the latest local image.
8. Use Remove photo with Photo URL when possible. Its numeric index is zero-based; Bubble repeating-group indexes are commonly one-based, so subtract 1 when needed. Use Move photo and Clear all photos to manage a multiple-mode collection.
9. Set capture mode / Set capture source actions fire their change events. Dynamic property changes update the corresponding Current states without firing those action-specific events.
10. Guide fit is an interactive/manual indicator controlled by tap, hold, or workflow actions. It is not automatic subject detection.
IMPORTANT STATES
Captured image: current image in single mode; empty in multiple mode.
Captured images (multiple mode): ordered collection in multiple mode; empty in single mode.
Multiple photo count: collection size in multiple mode; 0 in single mode.
Last file URL: local URI first, then hosted Bubble URL after a successful upload.
Last file type: image for camera capture, gallery for gallery pick.
Camera permission status / Media permission status: granted, denied, or undetermined.
Camera ready?: readiness for the active camera path.
Is the element busy?: active foreground media operation.
Save status: empty, saving, saved, or error.
Last error: most recent operational error message.
Current capture source / In multiple capture mode?: active runtime source/mode.
Guide fit: current neutral/good-fit state.
ERRORS AND UPLOADS
Hosted upload failure does not discard an already accepted local image. Last error reports Upload failed: ... and When an error occurs fires. Permission outcomes also have dedicated permission states/events.
NATIVE MOBILE NOTES
Device camera behavior can vary by iOS/Android and the installed native camera app. Always test camera permissions, media permissions, background/foreground return, orientation, and gallery/save/share behavior on the platforms you ship.
SUPPORT & EXPRESS RESPONSES
For faster support, issue reports, or direct feedback, contact the developer here:
LinkedIn:
https://www.linkedin.com/in/ndimdonald/X (Twitter):
https://x.com/donald_ndim