VR Not Working on iOS (Works on Android) – Even Forked "WebXR Hello World" Breaks

Hi everyone,

I’m trying to enable VR mode in my PlayCanvas project. Here’s the situation:

On Android devices, everything works perfectly I can enter VR mode without issues.On iOS devices, VR mode doesn’t start at all. The button appears but tapping it does nothing, or the session fails to launch.

To troubleshoot:

I tested the official PlayCanvas “WebXR Hello World” project ([PlayCanvas | HTML5 Game Engine] directly.
When I play it from the official project, VR works on iOS.
But when I fork the same project to my own account and publish it, VR no longer works on iOS, even without any code changes.

This makes me think the problem isn’t just in my original project but may be related to how iOS handles something in forked or republished PlayCanvas projects.

Has anyone run into this? Are there any settings or permissions I need to configure differently for iOS?

Hey Nakul,
Yeah, I’ve actually run into a similar issue before when testing VR on iOS. It’s frustrating because it works fine in the official project, but breaks when you fork it even without changing anything.
From what I’ve found, it seems to be related to how iOS handles secure contexts and permissions. When PlayCanvas hosts the official demo, it’s served from a trusted domain (like playcanvas.com), but when you fork and publish it, your version gets a different URL. iOS can be really picky about trusting certain features like WebXR depending on the domain and SSL certificate.
A couple of things to check:
Make sure your forked project is being served over HTTPS.
Check if the domain/subdomain for your published project is considered a secure origin by Safari.
Try adding your forked version to the home screen (PWA style) and launching it from there some users have had better luck that way.

Also, double-check that the immersive-vr feature is properly requested and that there are no pop-up blockers or permission prompts being missed.

It’s definitely more of an iOS/Safari quirk than a PlayCanvas issue. Hopefully Apple improves this soon.

Let me know if you find a workaround, I’d be interested!

WebXR is not supported on iOS Safari. The older published version had a WebXR polyfill that is no longer in the main project because the polyfill hasn’t been maintained and therefore isn’t compatible with newer iOS devices.