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 plattformspezifischen Apps oder Progressive Web Apps repräsentieren. Dies könnte zur Personalisierung von Inhalten verwendet werden, beispielsweise um "Installieren Sie unsere App"-Banner aus der Web-App zu entfernen, wenn die plattformspezifische App und/oder PWA bereits installiert ist.
Hinweis:
Diese Methode muss in einem Top-Level-sicheren Kontext aufgerufen werden, das heißt, 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 zur aufrufenden Web-App gehören.
Um die aufrufende Web-App mit einer plattformspezifischen App oder PWA zu verknüpfen, müssen zwei Dinge getan werden:
- Die aufrufende Web-App muss im
related_applications
-Mitglied ihrer Manifestdatei angegeben sein. - Die plattformspezifische 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 nutzt dazu das Digital Asset Links System.
- Eine Windows UWP-App verwendet URI Handler.
- Eine PWA macht dies durch:
- Einen selbsterklärenden Eintrag innerhalb ihres eigenen
related_applications
-Manifest-Mitglieds, der die Eigenschaftenplatform
undid
angibt, im Fall einer PWA, die innerhalb des gleichen Scopes prüft, ob sie auf der darunterliegenden Plattform installiert ist. - Eine
assetlinks.json
-Datei in ihrem/.well-known/
Verzeichnis im Fall einer App außerhalb des Scopes der PWA, die überprüft, ob sie auf Android installiert ist.
- Einen selbsterklärenden Eintrag innerhalb ihres eigenen
Weitere Details zum Umgang mit diesen Fällen finden Sie unter Ist Ihre App installiert? getInstalledRelatedApps() wird es Ihnen sagen!.
Hinweis:
Die meisten unterstützenden Browser bieten ihre eigene Installations-Benutzeroberfläche, 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 verfügbaren plattformspezifischen App zu unterdrücken. Siehe Auslösen der Installation von Ihrer PWA für weiterführende Informationen.
Syntax
getInstalledRelatedApps()
Parameter
Keine.
Rückgabewert
Ein Promise
, das mit einem Array von Objekten aufgelöst wird, die alle installierten zugehörigen Apps repräsentieren. Jedes Objekt kann die folgenden Eigenschaften enthalten:
id
Optional-
Ein String, der die ID darstellt, die verwendet wird, um die Anwendung auf der angegebenen Plattform zu repräsentieren. Die genaue Form des Strings variiert je nach Plattform.
platform
-
Ein String, der die Plattform (Ökosystem oder Betriebssystem) repräsentiert, mit der die zugehörige App in Verbindung steht. Dies kann sein:
"chrome_web_store"
: Eine Google Chrome Web Store App."play"
: Eine Google Play Store App."chromeos_play"
: Eine ChromeOS Play App."webapp"
: Eine Progressive Web App."windows"
: Eine Windows Store App."f-droid"
: Eine F-Droid App."amazon"
: Eine Amazon App Store App.
url
Optional-
Ein String, der die mit der App verbundene URL darstellt. 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 zugehörigen App darstellt.
Die Informationen zu der zugehörigen App müssen zuvor im related_applications
-Mitglied der aufrufenden Web-App Manifestdatei angegeben worden sein.
Ausnahmen
InvalidStateError
DOMException
-
Die Methode wurde nicht in einem Top-Level-Browsing-Kontext aufgerufen.
Beispiele
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
Loading…