Navigator: getInstalledRelatedApps()-Methode
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.
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 zu einem Array von Objekten aufgelöst wird, die alle verwandten plattformspezifischen Apps oder Progressive Web Apps darstellen, die der Nutzer installiert hat. Dies könnte für die Personalisierung von Inhalten verwendet werden, beispielsweise um "Installieren Sie unsere App"-Banner von 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, sie darf nicht in einem <iframe>
eingebettet sein.
Beschreibung
getInstalledRelatedApps()
kann verwendet werden, um die Installation von Universal Windows Platform (UWP)-Apps, Android-Apps und PWAs zu überprüfen, die mit der Web-App, die diese Methode aufruft, verknüpft sind.
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 spezifiziert werden. - Die plattformspezifische App oder PWA muss ihre Beziehung zur aufrufenden App definieren.
Die Definition der Beziehung erfolgt auf unterschiedliche Weise, abhängig von der Art der App:
- Eine Android-App macht dies über das Digital Asset Links System.
- Eine Windows UWP-App macht dies über URI Handler.
- Eine PWA macht dies über:
- Einen selbstdefinierenden Eintrag in ihrem eigenen
related_applications
-Manifest-Mitglied, falls eine PWA überprü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 Bereichs der PWA überprüft, ob sie installiert ist.
- Einen selbstdefinierenden Eintrag in ihrem eigenen
Siehe Ist Ihre App installiert? getInstalledRelatedApps() sagt es Ihnen! für weitere Details, wie jeder dieser Fälle behandelt werden kann.
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 Installation von Ihrer PWA auslösen für weitere nützliche Informationen.
Syntax
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 folgende Eigenschaften enthalten:
id
Optional-
Ein String, der die ID darstellt, die verwendet wird, um die Anwendung auf der angegebenen Plattform darzustellen. Die genaue Form des Strings variiert je nach Plattform.
platform
-
Ein String, der die Plattform (Ökosystem oder Betriebssystem) darstellt, mit der die verwandte App verknüpft ist. Das 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 URL darstellt, die mit der App verknüpft ist. Dies ist normalerweise, wo Sie Informationen darüber 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
-Mitglied der Manifestdatei der aufrufenden Web-App angegeben worden sein.
Ausnahmen
InvalidStateError
DOMException
-
Die Methode wurde nicht in einem top-level Browser-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
BCD tables only load in the browser