Events['xr:start'] ​

Contract 2.0.0 · package sha256 a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e · generated from configurator-runtime.d.ts by services/onsite-scripter/scripts/build-contract-docs.mjs; edit the source, not this file.

Property of Events · labs, @experimental · since 2.0.0

ts
'xr:start': {
  readonly presenter: 'webxr' | 'scene-viewer' | 'quick-look' | 'other';
  readonly experience: 'place' | 'try-on' | 'other';
};

Holostep's in-page AR or try-on showed its first picture: experience is 'place' (in-room AR) or 'try-on', presenter the viewer that shows it, named as ActivateARReport.mode and info().ar.modes name it: 'webxr' for Holostep's in-page AR on either route (WebXR on Android, the camera route on iOS), 'other' for try-on. Scene Viewer and Quick Look run outside the page and fire no 'xr:start'.

Fields ​

presenter ​

ts
readonly presenter: 'webxr' | 'scene-viewer' | 'quick-look' | 'other';

experience ​

ts
readonly experience: 'place' | 'try-on' | 'other';

Generic-API test (spec 3.1) ​

Rule Result
1. Neutral name pass: xr:start names no product
2. A precedent pass: model-viewer canActivateAR and activateAR() (row G66); XRSession.end() (row G66); Navigator.share() (resolves when the share UI closes) (row G66)
3. Two apps, or labs labs (@experimental at a stable path, reached through has() or supports()): it graduates when a second app uses it; apps today: configurator-template, tryon-template
4. The cheaper fix first decided per need in Appendix B: rows G66 at tier labs (a member only where no rule, data, asset or app code serves the need)