App-Verknüpfungen erstellen

François Beaufort
François Beaufort

Mit App-Verknüpfungen können Nutzer häufige oder empfohlene Aufgaben in Ihrer Webanwendung schnell starten. Einfacher Zugriff auf diese Aufgaben von überall aus, wo das App-Symbol angezeigt wird, verbessert die Produktivität der Nutzer und steigert die Interaktion mit der Web-App.

Die moderne Art

App-Verknüpfungen im Web-App-Manifest definieren

Das Menü für App-Verknüpfungen wird aufgerufen, indem Sie auf dem Desktop des Nutzers mit der rechten Maustaste auf das App-Symbol in der Taskleiste (Windows) oder im Dock (macOS) klicken oder unter Android das Launcher-Symbol der App gedrückt halten.

Ein geöffnetes App-Verknüpfungsmenü auf Android.
Menü für App-Verknüpfungen auf Android geöffnet
Ein geöffnetes App-Verknüpfungsmenü unter Windows.
Menü für App-Verknüpfungen unter Windows geöffnet

Das Menü mit App-Verknüpfungen wird nur für installierte progressive Web-Apps angezeigt. Weitere Informationen zu den Anforderungen an die Installierbarkeit finden Sie im Abschnitt zum Thema Installation im Modul Weitere Informationen zu PWAs.

Jede App-Verknüpfung drückt eine Nutzerabsicht aus, die jeweils mit einer URL im Bereich Ihrer Web-App verknüpft ist. Die URL wird geöffnet, wenn ein Nutzer die App-Verknüpfung aktiviert.

App-Verknüpfungen werden optional im Array-Mitglied shortcuts des Web App-Manifests deklariert. Unten sehen Sie ein Beispiel für ein potenzielles Manifest einer Web-App.

{
  "name": "Player FM",
  "start_url": "https://player.fm?utm_source=homescreen",
  "shortcuts": [
    {
      "name": "Open Play Later",
      "short_name": "Play Later",
      "description": "View the list of podcasts you saved for later",
      "url": "/play-later?utm_source=homescreen",
      "icons": [{ "src": "/icons/play-later.png", "sizes": "192x192" }]
    },
    {
      "name": "View Subscriptions",
      "short_name": "Subscriptions",
      "description": "View the list of podcasts you listen to",
      "url": "/subscriptions?utm_source=homescreen",
      "icons": [{ "src": "/icons/subscriptions.png", "sizes": "192x192" }]
    }
  ]
}

Unterstützte Browser

  • 96
  • 96
  • x
  • 17,4

Quelle

Klassisch

Wenn die App noch nicht installiert ist, können Sie dem Nutzer vorschlagen, einige Links von Ihrer Webseite zu ziehen und sie in der Lesezeichenleiste des Browsers loszulassen. Auf diese Weise können sie schnell häufige oder empfohlene Aufgaben in Ihrer Webanwendung starten.

Weitere Informationen

Demo

HTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="color-scheme" content="dark light" />
    <link rel="manifest" href="manifest.json" />
    <title>How to create app shortcuts</title>
    <!-- TODO: Devsite - Removed inline handlers -->
    <!-- <script>
      if ('serviceWorker' in navigator) {
        window.addEventListener('load', () => {
          navigator.serviceWorker.register('sw.js');
        });
      }
    </script>
    <script type="module" src="script.js"></script> -->
  </head>
  <body>
    <h1>How to create app shortcuts</h1>
    <ol>
      <li>
        You can drag these <a href="blue.html">blue page</a> or
        <a href="red.html">red page</a> links to the bookmarks bar
        and access them later.
      </li>
      <li>
        Install the app by clicking the button below. After the installation,
        the button is disabled.
        <p>
          <button disabled type="button">Install</button>
        </p>
      </li>
    </ol>
  </body>
</html>

JS


        // The install button.
const installButton = document.querySelector('button');

// Only relevant for browsers that support installation.
if ('BeforeInstallPromptEvent' in window) {
  // Variable to stash the `BeforeInstallPromptEvent`.
  let installEvent = null;

  // Function that will be run when the app is installed.
  const onInstall = () => {
    // Disable the install button.
    installButton.disabled = true;
    // No longer needed.
    installEvent = null;
  };

  window.addEventListener('beforeinstallprompt', (event) => {
    // Do not show the install prompt quite yet.
    event.preventDefault();
    // Stash the `BeforeInstallPromptEvent` for later.
    installEvent = event;
    // Enable the install button.
    installButton.disabled = false;
  });

  installButton.addEventListener('click', async () => {
    // If there is no stashed `BeforeInstallPromptEvent`, return.
    if (!installEvent) {
      return;
    }
    // Use the stashed `BeforeInstallPromptEvent` to prompt the user.
    installEvent.prompt();
    const result = await installEvent.userChoice;
    // If the user installs the app, run `onInstall()`.
    if (result.outcome === 'accepted') {
      onInstall();
    }
  });

  // The user can decide to ignore the install button
  // and just use the browser prompt directly. In this case
  // likewise run `onInstall()`.
  window.addEventListener('appinstalled', () => {
    onInstall();
  });
}