TL;DR
- The ask: Extend the existing POS Camera API (
shopify.camera.takePhoto()) to embedded apps via App Bridge when they run in the Shopify mobile Admin app. - The gap: Native camera capture exists only in POS UI extensions. Embedded Admin apps are stuck with unreliable web fallbacks (
capture="environment",getUserMedia()) inside the Admin webview/iframe. - Why: Warehouse/fulfilment apps run in the Admin, not POS. Merchants want packing/proof photos at the moment an order is packed, and most of them fulfil through the Admin app rather than POS.
Shopify POS UI extensions have an excellent native Camera API. shopify.camera.takePhoto() launches the native camera, lets you pick front/rear, control size and quality, and returns the image as base64 ready to upload. It is explicitly positioned for visual records, verification, and proof-of-work flows.
The problem: that API is available only inside POS UI extensions. Embedded apps running in the Shopify mobile Admin app have no equivalent. App Bridge already spans Admin, Shopify Mobile, and POS, so this is a surprising gap.
Today the only option for an embedded Admin app is standard web capture, either <input type="file" accept="image/*" capture="environment"> or getUserMedia(). Both are unreliable inside the Admin app’s webview/iframe: capture="environment" is only a hint, camera permission and iframe allow policies vary between the iOS app, Android app, and mobile browsers, and there is no consistent, guaranteed native-camera launch. Developers keep hitting this, see the recurring “camera access in embedded app” threads on this forum.
The request: expose a native camera API (equivalent to the POS Camera API) to embedded apps via App Bridge when running in the Shopify mobile Admin app. Ideally the same takePhoto shape, with facingMode, quality, maxWidth/maxHeight and a base64 result, so a single code path works across POS and Admin.
Use case: our app (EasyScan) is a warehouse/fulfilment app used in the Admin and POS. A very common request from merchants is capturing a packing photo, proof of what was in the parcel, right when the last item is scanned and the order is packed. On mobile, where a lot of packing verification actually happens, there is no dependable native camera. Merchants who run fulfilment through the Admin app (the majority, versus POS) are the ones who miss out.
Why it matters: packing/proof-of-delivery photos, condition-on-dispatch records, damage documentation, and returns inspection are all natural Admin-app workflows. The capability already exists and is proven in POS, so extending it to the Admin app would unlock these without every app author reinventing a workaround.
Thanks!