איך יוצרים קיצורי דרך של אפליקציות

François Beaufort
François Beaufort

קיצורי דרך לאפליקציות עוזרים למשתמשים להתחיל במהירות משימות נפוצות או מומלצות באפליקציית האינטרנט. הגישה הקלה למשימות האלה מכל מקום שבו מוצג סמל האפליקציה תשפר את הפרודוקטיביות של המשתמשים ותגביר את ההתעניינות שלהם באפליקציית האינטרנט.

הגדרת קיצורי דרך של אפליקציות במניפסט של אפליקציית האינטרנט

כדי להפעיל את תפריט קיצורי הדרך של האפליקציה, לוחצים לחיצה ימנית על סמל האפליקציה בסרגל האפליקציות (ב-Windows) או ברשימת האפליקציות הנפוצות (ב-macOS) במחשב של המשתמש, או לוחצים לחיצה ארוכה על סמל האפליקציה במרכז האפליקציות ב-Android.

תפריט קיצורי דרך של אפליקציה נפתח ב-Android.
תפריט מקשי הקיצור של האפליקציות נפתח ב-Android
תפריט של קיצורי דרך לאפליקציות שנפתח ב-Windows.
תפריט מקשי הקיצור של האפליקציות נפתח ב-Windows

תפריט קיצורי הדרך של האפליקציות מוצג רק לאפליקציות אינטרנט מתקדמות שמותקנות. במאמר התקנה במודול מידע על PWA מוסבר על הדרישות בנוגע להתקנה.

כל קיצור דרך לאפליקציה מייצג את כוונת המשתמש, וכל אחת מהן משויכת לכתובת URL בתוך היקף אפליקציית האינטרנט. כתובת ה-URL נפתחת כשמשתמש מפעיל את קיצור הדרך לאפליקציה.

יש להצהיר על מקשי קיצור של אפליקציות בקובץ ה-shortcuts שמוגדר במניפסט של אפליקציית האינטרנט. בהמשך מוצגת דוגמה למניפסט של אפליקציית אינטרנט פוטנציאלית.

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

תמיכה בדפדפן

  • Chrome:‏ 96.
  • Edge:‏ 96.
  • Firefox: לא נתמך.
  • Safari: 17.4.

מקור

הדרך הקלאסית

אם האפליקציה עדיין לא מותקנת, אפשר להציע למשתמש לגרור קישורים מסוימים מדף האינטרנט שלכם ולשחרר אותם בסרגל הסימניות של הדפדפן. כך הם יוכלו להתחיל במהירות משימות נפוצות או מומלצות בתוך אפליקציית האינטרנט שלכם.

קריאה נוספת

הדגמה (דמו)

<!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>

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