Support web apps
A web app turns a web page into an Android app, making it easier to find and simpler to use on mobile devices. A web app looks like a native app in a device's launcher, and when the user opens it the Chrome Browser renders the web page in the selected display mode (minimal UI, standalone or full screen).
You can distribute web apps the same way you can native apps. This includes adding them to collections in the managed Google Play store and remotely installing them on devices.
Components of a web app
To create a web app, you need to specify:
- a title that is shown on the device on the managed Play Store and on the launcher,
- a start URL that the web apps opens to,
- a display mode that defines how the web app is displayed on the device.
You can also set an icon for the web app to help users identify it. Icons are optional, but recommended.
The title must be fewer than 50 characters. Depending on the form factor of the device, a web app's title may be truncated in the managed Play store and in the device's launcher. We therefore recommend specifying short title.
The start URL of a web app defines the page the web app opens to. The user can then navigate to other URLs.
The start URL must be a
HTTP URL. The URL of the web app must
HTTPS scheme when the display mode is full screen or standalone.
The display mode describes what browser UI elements are visible when a web app is opened:
- Minimal UI: the URL bar is shown at the top and the system status bar and
navigation buttons are visible. For
HTTPURLs, this is the only available option.
- Standalone: the URL bar is not shown and the system status bar and navigation buttons are visible.
- Fullscreen: the URL bar is not shown and the system status bar and navigation buttons are hidden; the websites's interface must provide all navigation controls.
The display mode is only applied to pages of the same domain as the start URL. If the user navigates to a URL of a different domain than the start URL, then this new page will open in a Chrome Custom Tab with the new URL visible to the user, regardless of the selected display mode. For example, if the start URL immediately redirects to a URL of a different domain, then this page will be displayed in a Chrome Custom Tab.
When a user first opens a web app, a notification at the bottom of the screen is shown to inform them that they are in a browser rather than a native app.
Specifying an icon helps users identify a web app. For any web app that doesn't have a specified icon, Google will insert and display the same default icon. To make it easier for your users to distinguish between their apps, we strongly recommend creating web apps with distinct, meaningful icons.
IT admins can set a single icon for the web apps they create in the managed Google Play iframe. When using the API to create web apps, you can allow IT admins to set multiple icons. These icons will all be embedded into the web app's APK and the Android system will display the one that's most suitable for the device's display resolution. The managed Play store always displays the first icon specified for a web app.
The first icon should ideally be a 512x512 pixels square. PNG and JPEG are acceptable formats. Icons that don't adhere to this format will be rescaled for the managed Play store entry.
When using the API the icon data must be encoded in base64url format (i.e. base64 but any '+' is replaced with a '-' and any '/' replace with a '_' — [see RFC 4648, section 5 for details]).
Create a web app
You can create web apps either by embedding the managed Google Play iframe in your EMM console or by integrating with the API. The two approaches are interchangeable and offer the same end-user experience on devices, so it's up to you to decide which approach works best with your solution.
Option 1: embed the managed Google Play iframe
The managed Google Play iframe includes a user interface for IT admins to create, edit, and delete web apps. If you choose to support web apps through this option, follow the instructions to embed the managed Google Play iframe into your EMM console. The web app interface is accessible from the iframe's left navigation menu.
After a web app is created in the iframe, it takes a few minutes before the app can be selected
in the interface. When a web app is selected, an
event is triggered with the web app's
passed in the event.
Using a web app's package name, you can distribute it to users.
Option 2: integrate with the API
Another way to support web apps in your EMM console is to integrate with the web apps API. To
create a web app, use the method
Web apps created through the API can be added to policy immediately after creation. However, it may take several minutes before they are installed on devices or becomes visible to the user in the managed Play store.
Distribute a web app
You can distribute a web app just like any other app—by adding the package name returned by the iframe or API to a device's policy.
For a device to support a web app's display mode, it must have Google Chrome
com.android.chrome) installed. To ensure that Chrome is installed on
the device, we recommend adding it to a device's policy and setting
If Google Chrome isn’t installed on the device, then opening the web app will show a dialog indicating that the Google Chrome must be installed.
Update a web app
The managed Google Play iframe allows IT admins to edit the web apps they publish. Using the API,
you can update any aspect of a web app by calling
method takes the app's name in addition to the same parameters as
Note that Google will also periodically refresh your web apps to update the Chrome wrapper—this won't affect enterprises or their users except that their web app's version numbers will change and the apps are automatically updated by the Play store at the next convenient time.
Delete a web app
The managed Google Play iframe allows IT admins to delete web apps. Using the API, you can call
to delete a web app. Deleting a web app removes it from the managed Play store, but doesn't
uninstall it from devices. To uninstall a web app from a device,
set the app's
BLOCKED in the device's policy.