UArExperiences class abstract
Ready-made AR screens and checks: ARCore (Android), ARKit (iOS), WebXR or camera+compass (web); desktops report unsupported. Needs permission add camera. UArExperiences.place(items: [UArPlaceable(id: "sofa", title: "Sofa", source: UArSource.asset("assets/sofa.glb"))])
Constructors
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
availability(
) → Future< UArAvailability> - Whether AR can run: supported, needs ARCore install, unsupported…
-
capabilities(
) → Future< UArCapabilities> - Which AR features this device has (planes, faces, depth, geo, LiDAR…).
-
captureObject(
{UArObjectCaptureDetail detail = UArObjectCaptureDetail.reduced}) → Future< UArObjectCaptureResult?> - Photographs a real object into a 3D model (iOS 17+ with LiDAR); null elsewhere.
-
codes(
{required Widget cardBuilder(BuildContext context, String code, UArProjection projection)}) → Future< void> - Floats a card of your own over every QR code the camera sees.
-
images(
{required List< UArImageTarget> targets}) → Future<void> -
Shows content when the camera sees one of
targets(posters, packaging). -
isSupported(
) → Future< bool> -
True when live AR can run right now.
if (await UArExperiences.isSupported()) … -
measure(
{UArMeasureUnit unit = UArMeasureUnit.metric, bool closeShape = false}) → Future< void> - Measures lengths and areas with the camera (Android, iOS).
-
openNativeViewer(
UArNativeViewerOptions options) → Future< bool> - Opens a model in the OS viewer: Quick Look (iOS), Scene Viewer (Android).
-
openSettings(
) → Future< bool> - Opens the app's settings to grant a denied permission.
-
permission(
) → Future< UArPermissionState> - Camera (and location/microphone) permission for AR.
-
place(
{required List< UArPlaceable> items, int initialItem = 0, UArConfig config = const UArConfig(reticle: true), UArSceneOptions options = const UArSceneOptions(), List<UArOverlay> overlays = const <UArOverlay>[], UArLabels labels = const UArLabels(), UArStyle style = const UArStyle(), void onPlaced(UArPlacedItem placed)?}) → Future<void> -
Lets the user place 3D products/furniture in the room and move, rotate, scale them.
UArExperiences.place(items: [UArPlaceable(id: "chair", title: "Chair", source: UArSource.url(glbUrl))]) -
places(
{required List< UArPlace> places, void onPlaceTap(UArPlace place)?, double maxDistance = 800}) → Future<void> -
Shows nearby places as floating labels (needs
permission add location). -
renderWidget(
Widget widget, {Size size = const Size(320, 200), double pixelRatio = 3, BuildContext? context}) → Future< Uint8List?> - Renders a Flutter widget to PNG bytes (for labels/cards placed in AR).
-
requestInstall(
) → Future< UArAvailability> - Android: asks to install/update ARCore from Play; returns the new availability.
-
requestPermission(
{bool location = false, bool microphone = false}) → Future< UArPermissionState> - Asks for the camera, and optionally location/microphone.
-
scanRoom(
) → Future< UArRoomScanResult?> - Scans a room into a 3D floor plan (iPhone/iPad with LiDAR only); null elsewhere.
-
tryOn(
{required List< UArTryOnItem> items, int initialIndex = 0}) → Future<void> - Face try-on of glasses, hats, masks with the front camera (iOS Face ID devices, Android ARCore).
-
viewProduct(
{required UArSource source, UArSource? iosSource, String? title, List< UArHotspot> hotspots = const <UArHotspot>[], UArLabels labels = const UArLabels()}) → Future<void> -
Full-screen 3D viewer with a "View in AR" button (any platform shows 3D; AR where supported).
UArExperiences.viewProduct(source: UArSource.url(glbUrl))