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 installierten plattformspezifischen Apps oder Progressive Web Apps darstellen. Dies könnte zur Personalisierung von Inhalten genutzt werden, indem z.B. "Installieren Sie unsere App"-Banner von der Web-App entfernt werden, wenn die plattformspezifische App und/oder PWA bereits installiert ist.

Hinweis: Diese Methode muss in einem übergeordneten sicheren Kontext aufgerufen werden, das heißt, sie darf nicht in einem <iframe> eingebettet sein.

Beschreibung

getInstalledRelatedApps() kann genutzt 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 in Beziehung stehen.

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

  1. Die aufrufende Web-App muss im related_applications-Mitglied ihrer Manifest-Datei angegeben sein.
  2. Die plattformspezifische App oder PWA muss ihre Beziehung zur aufrufenden App definiert haben.

Die Definition der Beziehung erfolgt je nach Art der App unterschiedlich:

  • Eine Android-App verwendet dazu das Digital Asset Links System.
  • Eine Windows UWP App verwendet dazu URI Handlers.
  • Eine PWA verwendet dafür:
    • Einen selbsterklärenden Eintrag innerhalb ihres eigenen related_applications-Manifest-Mitglieds, falls eine PWA überprüft, ob sie auf der zugrundeliegenden Plattform installiert ist.
    • Eine assetlinks.json-Datei in ihrem /.well-known/ Verzeichnis, falls eine App außerhalb des Geltungsbereichs der PWA überprüft, ob sie installiert ist.

Siehe Ist Ihre App installiert? getInstalledRelatedApps() wird es Ihnen sagen! für mehr Details, wie Sie jede dieser Fälle handhaben können.

Hinweis: Die meisten unterstützenden Browser bieten ihre eigene Installations-UI, wenn eine installierbare PWA erkannt wird, die nicht erscheint, wenn sie bereits installiert ist – siehe PWAs installierbar machen > Installation aus dem Web. Dies kann mit dem beforeinstallprompt-Ereignis unterdrückt werden, das auch mit getInstalledRelatedApps() kombiniert werden könnte, um es basierend auf einer plattformspezifischen verfügbaren App zu unterdrücken. Siehe Installation aus Ihrer PWA auslösen für weitere nützliche Informationen.

Syntax

js
getInstalledRelatedApps()

Parameter

Keine.

Rückgabewert

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

id Optional

Ein String, der die ID repräsentiert, die zur Darstellung 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) beschreibt, mit der die verwandte App in Verbindung steht. Dies kann sein:

url Optional

Ein String, der die URL repräsentiert, die mit der App verbunden ist. Dies ist normalerweise der Ort, an dem Sie Informationen darüber lesen und sie installieren können.

version Optional

Ein String, der die Version der verwandten App repräsentiert.

Die Informationen über die verwandte App müssen zuvor im related_applications-Mitglied der die Methode aufrufenden Web-App Manifest-Datei angegeben worden sein.

Ausnahmen

InvalidStateError DOMException

Die Methode wurde nicht in einem übergeordneten Browsing-Kontext 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, von Entwicklern definierte Funktion; sie wird nicht vom Browser bereitgestellt.

Spezifikationen

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

Browser-Kompatibilität

Siehe auch