Mit App-Verknüpfungen können Nutzer häufig verwendete oder empfohlene Aufgaben in Ihrer Webanwendung schnell starten. Der einfache Zugriff auf diese Aufgaben überall dort, wo das App-Symbol angezeigt wird, erhöht die Produktivität der Nutzer und die Interaktion mit der Webanwendung.
Die moderne Art
App-Verknüpfungen im Manifest der Webanwendung definieren
Sie können das Menü mit den App-Verknüpfungen aufrufen, indem Sie auf dem Desktop des Nutzers in der Taskleiste (Windows) oder Dock (macOS) mit der rechten Maustaste auf das App-Symbol klicken oder auf Android-Geräten das Launcher-Symbol der App gedrückt halten.
Das Menü mit App-Verknüpfungen wird nur für installierte progressive Web-Apps angezeigt. Weitere Informationen zu den Anforderungen an die Installierbarkeit findest du unter Installation im Modul PWA für PWAs kennenlernen.
Jeder App-Shortcut drückt eine Nutzerabsicht aus, die jeweils mit einer URL im Rahmen Ihrer Webanwendung verknüpft ist. Die URL wird geöffnet, wenn ein Nutzer den App-Shortcut aktiviert.
App-Verknüpfungen werden optional im Array-Element shortcuts
des Manifests der Webanwendung deklariert. Unten sehen Sie ein Beispiel für ein mögliches Manifest für eine Webanwendung.
{
"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" }]
}
]
}
Die klassische Methode
Nutzern erlauben, Links in die Lesezeichenleiste zu ziehen
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. So können sie schnell mit gängigen oder empfohlenen Aufgaben in Ihrer Webanwendung beginnen.
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();
});
}