This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

The BeforeInstallPromptEvent is fired at the Window.onbeforeinstallprompt handler before a user is prompted to "install" a web site to a home screen on mobile.

This interface inherits from the Event interface.


Creates a new BeforeInstallPromptEvent.


Inherits properties from its parent, Event.

BeforeInstallPromptEvent.platforms Read only
Returns an array of DOMString items containing the platforms on which the event was dispatched. This is provided for user agents that want to present a choice of versions to the user such as, for example, "web" or "play" which would allow the user to chose between a web version or an Android version.
BeforeInstallPromptEvent.userChoice Read only
Returns a Promise that resolves to a DOMString containing either "accepted" or "dismissed".


Allows a developer to show the install prompt at a time of their own choosing. This method returns a  Promise.


window.addEventListener("beforeinstallprompt", function(e) { 
  // log the platforms provided as options in an install prompt 
  console.log(e.platforms); // e.g., ["web", "android", "windows"] 
  e.userChoice.then(function(outcome) { 
    console.log(outcome); // either "accepted" or "dismissed"
  }, handleError); 


Specification Status Comment
Web App Manifest
The definition of 'BeforeInstallPromptEvent' in that specification.
Working Draft Initial definition.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support45 ? No No No No
BeforeInstallPromptEvent() constructor45 ? No No No No
platforms45 ? No No No No
prompt45 ? No No No No
userChoice45 ? No No No No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support4545 ? No No No ?
BeforeInstallPromptEvent() constructor4545 ? No No No ?
platforms4545 ? No No No ?
prompt4545 ? No No No ?
userChoice4545 ? No No No ?

Document Tags and Contributors

Contributors to this page: connorshea, coox, jpmedley, marcoscaceres, rolfedh, jsx
Last updated by: connorshea,