Progressive Web Apps
Support for Progressive Web Apps (PWAs) in the Meta Horizon Store is coming soon. PWAs enable developers to package web apps into Meta Quest applications. Users will be able to download PWAs from the Horizon Store just like any other app.
For Meta Horizon OS, PWAs are built using
Bubblewrap, a tool to package your Progressive Web App into an Android App Bundle. With it, you can create an Android application that launches PWAs using “
Trusted Web Activity”, a mechanism to access web content from an Android app. Developers will have access to in-app purchase capabilities, via the
Digital Goods API.
What type of PWAs are supported?
Initially, the Meta Horizon Store will only support immersive WebXR PWAs, with support for 2D and Hybrid (2D + immersive) coming at a later date. 2D PWAs leverage web content available today while immersive PWAs are web experiences built using WebXR. WebXR PWAs launch directly into immersive MR/VR and provide a similar experience to native MR/VR applications on the Meta Quest.
If you have an existing WebXR PWA, you can start testing the website version of it today using Meta Quest’s built-in
web browser, as WebXR PWAs and Quest’s Browser are powered by the same web rendering engine. Remember that PWAs need to adhere to the same
policies and
Virtual Reality Checks (VRCs) as other apps in the Horizon Store.
A key VRC to be aware of is the
Quest.Performance.3 startup time requirement. WebXR experiences typically load assets before a session begins, but because WebXR PWAs launch directly into immersive mode, pre-loaded assets count against this requirement. For PWAs, it’s a best practice to load as many assets as possible after the WebXR session initiates.
If you don’t have an existing WebXR PWA, we recommend learning more about WebXR and getting started through the resources below.
How can I learn more about PWAs?
There are plenty of existing resources you can check out right now:
Bubblewrap - A Command Line Interface (CLI) that helps developers create a Project for an Android application, launching a PWA using a Trusted Web Activity.