Navigator: getInstalledRelatedApps() Methode

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die getInstalledRelatedApps() Methode gibt ein Promise zurück, das mit einem Array von Objekten aufgelöst wird, die alle benutzerinstallierten platform-spezifischen Apps oder Progressive Web Apps darstellen. Dies kann zur Personalisierung von Inhalten verwendet werden, z. B. indem "installieren Sie unsere App" Banner von der Web-App entfernt werden, wenn die platform-spezifische App und/oder PWA bereits installiert ist.

Hinweis: Diese Methode muss in einem übergeordneten sicheren Kontext aufgerufen werden, also nicht eingebettet in ein <iframe>.

Beschreibung

getInstalledRelatedApps() kann verwendet werden, um die Installation von Universal Windows Platform (UWP) Apps, Android Apps und PWAs zu überprüfen, die mit der die Methode aufrufenden Web-App verbunden sind.

Um die aufrufende Web-App mit einer platform-spezifischen App oder PWA zu verknüpfen, müssen zwei Dinge getan werden:

  1. Die aufrufende Web-App muss im related_applications Element ihrer Manifest-Datei spezifiziert sein.
  2. Die platform-spezifische App oder PWA muss ihre Beziehung zur aufrufenden App definiert haben.

Die Definition der Beziehung erfolgt je nach App-Typ auf unterschiedliche Weise:

  • Eine Android App tut dies über das Digital Asset Links System.
  • Eine Windows UWP App tut dies über URI-Handler.
  • Eine PWA tut dies über:
    • Einen selbstdefinierenden Eintrag innerhalb ihres eigenen related_applications Manifest-Elements, falls eine PWA prüft, ob sie auf der zugrunde liegenden Plattform installiert ist.
    • Eine assetlinks.json Datei in ihrem /.well-known/ Verzeichnis, falls eine App außerhalb des Geltungsbereichs der PWA prüft, ob sie installiert ist.

Siehe Is your app installed? getInstalledRelatedApps() will tell you! für weitere Details, wie man jeden dieser Fälle behandelt.

Hinweis: Die meisten unterstützenden Browser bieten ihre eigene Installationsoberfläche, wenn eine installierbare PWA erkannt wird, die nicht angezeigt wird, wenn sie bereits installiert ist — siehe Making PWAs installable > Installation from the web. Dies kann durch das beforeinstallprompt Ereignis unterdrückt werden, das auch mit getInstalledRelatedApps() kombiniert werden könnte, um es basierend auf einer verfügbaren platform-spezifischen App zu unterdrücken. Siehe Trigger installation from your PWA für weitere nützliche Informationen.

Syntax

js
getInstalledRelatedApps()

Parameter

Keine.

Rückgabewert

Ein Promise, das mit einem Array von Objekten erfüllt wird, die alle installierten verwandten Apps darstellen. Jedes Objekt kann die folgenden Eigenschaften enthalten:

id Optional

Ein String, der die ID darstellt, die zur Repräsentation der Anwendung auf der angegebenen Plattform verwendet wird. Die genaue Form des Strings variiert je nach Plattform.

platform

Ein String, der die Plattform (Ökosystem oder Betriebssystem) darstellt, mit der die verwandte App verbunden ist. Dies kann sein:

url Optional

Ein String, der die mit der App verbundene URL darstellt. Dies ist in der Regel der Ort, an dem Sie Informationen dazu lesen und sie installieren können.

version Optional

Ein String, der die Version der verwandten App darstellt.

Die Informationen zur verwandten App müssen zuvor im related_applications Element der Manifest-Datei der aufrufenden Web-App spezifiziert worden sein.

Ausnahmen

InvalidStateError DOMException

Die Methode wurde nicht in einem übergeordneten Browserkontext aufgerufen.

Beispiele

js
const relatedApps = await navigator.getInstalledRelatedApps();

// Dump all the returned related apps into a table in the console
console.table(relatedApps);

// Search for a specific installed platform-specific app
const psApp = relatedApps.find((app) => app.id === "com.example.myapp");

if (psApp && doesVersionSendPushMessages(psApp.version)) {
  // There's an installed platform-specific app that handles sending push messages
  // No need to handle this via the web app
  return;
}

Hinweis: In diesem Beispiel ist doesVersionSendPushMessages() eine theoretische, vom Entwickler definierte Funktion; sie wird nicht vom Browser bereitgestellt.

Spezifikationen

Specification
Get Installed Related Apps API
# dom-navigator-getinstalledrelatedapps

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
getInstalledRelatedApps
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.
Has more compatibility info.

Siehe auch