Uygulama kısayolları nasıl oluşturulur?

François Beaufort
François Beaufort

Uygulama kısayolları, kullanıcıların web uygulamanızda sık yapılan veya önerilen görevleri hızlıca başlatmalarına yardımcı olur. Bu görevlere uygulama simgesinin gösterildiği her yerden kolayca erişmek, kullanıcıların üretkenliğini ve web uygulamasıyla etkileşimi artırır.

Modern yöntem

Web uygulaması manifest dosyasında uygulama kısayollarını tanımlama

Uygulama kısayolları menüsü, kullanıcının masaüstündeki görev çubuğundaki (Windows) veya yuvadaki (macOS) uygulama simgesi sağ tıklanarak ya da Android'de uygulamanın başlatıcı simgesine dokunup basılı tutarak çağrılır.

Android'de açık uygulama kısayolları menüsü.
Android'de uygulama kısayolları menüsü açıldı
Windows'da açık uygulama kısayolları menüsü.
Windows'da uygulama kısayolları menüsü açıldı

Uygulama kısayolları menüsü yalnızca yüklü Progresif Web Uygulamaları için gösterilir. Yüklenebilirlik koşulları hakkında bilgi edinmek için PWA Öğrenme modülümüzdeki Yükleme bölümüne göz atın.

Her uygulama kısayolu, bir kullanıcının niyetini ifade eder. Bu amaçların her biri, web uygulamanızın kapsamındaki bir URL ile ilişkilendirilir. Kullanıcı, uygulama kısayolunu etkinleştirdiğinde URL açılır.

Uygulama kısayolları, isteğe bağlı olarak web uygulaması manifestinin shortcuts dizisi üyesinde tanımlanır. Aşağıda potansiyel bir web uygulaması manifesti örneği verilmiştir.

{
  "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" }]
    }
  ]
}

Tarayıcı Desteği

  • 96
  • 96
  • x
  • 17,4

Kaynak

Klasik yöntem

Uygulama henüz yüklenmediyse kullanıcıya web sayfanızdaki bazı bağlantıları sürükleyip tarayıcısının yer işareti çubuğunda bırakmasını önerebilirsiniz. Böylece, web uygulamanızda sık gerçekleştirilen veya önerilen görevleri hızla başlatabilirler.

Daha fazla bilgi

Demografi

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();
  });
}