A way to reset >this< experience without going back to the Scanning... screen

If you want to restart the AR experience, the only option we have right now is Z.device.reset() - but that takes the user back to the animated “Scanning…” screen, which only works if you’re using a Zapcode as a trigger.

We’re using the Lite WebAR site, triggered from a QR code. There’s no Zapcode to scan, so if we use that reset() function, the user’s going to be left with a puzzling Scanning graphic and nothing to scan.

When the new launchUrl “navigate” functionality has been deployed I guess we could rebuild the queryString that got the user to the experience, then use launchUrl to get the browser to reload the site, but it’d be great if there was a way to reset the experience in-place, to avoid forcing the user to hit Launch, and go through the permissions again.

On reset(), could you check whether the experience was launched specifically (ie check if the queryString contains &zid=z/xxxxxx) and if so, restart this experience, rather than scanning for a new Zapcode?

(this is, of course, possible with scripting - but with a complex AR experience there’s a lot of stuff to reset manually. But I’m very very lazy, and it’d just be nice for that reset function to work properly with non-Zapcode triggers)

2 Likes

Just to add: using launchUrl to reload the AR experience is quite swift at least. It takes the user back to the [lite branded] Launch splash, but it’s a quick workaround for now:

(Z.device as any).launchUrl("https://arweb.app/?"+Z.device.queryStringRaw(), "navigate");
1 Like