Cara membuat pintasan aplikasi

François Beaufort
François Beaufort

Pintasan aplikasi membantu pengguna memulai tugas umum atau yang direkomendasikan dengan cepat dalam aplikasi web Anda. Akses yang mudah ke tugas tersebut dari mana pun ikon aplikasi ditampilkan akan meningkatkan produktivitas pengguna serta meningkatkan interaksi mereka dengan aplikasi web.

Cara modern

Menentukan pintasan aplikasi di manifes aplikasi web

Menu pintasan aplikasi dipanggil dengan mengklik kanan ikon aplikasi di taskbar (Windows) atau dok (macOS) di desktop pengguna, atau dengan menyentuh lama ikon peluncur aplikasi di Android.

Menu pintasan aplikasi yang dibuka di Android.
Menu pintasan aplikasi dibuka di Android
Menu pintasan aplikasi yang terbuka di Windows.
Menu pintasan aplikasi dibuka di Windows

Menu pintasan aplikasi hanya ditampilkan untuk Progressive Web App yang sudah diinstal. Lihat Penginstalan di modul Pelajari PWA kami untuk mempelajari persyaratan kemampuan penginstalan.

Setiap pintasan aplikasi menyatakan intent pengguna, yang masing-masing terkait dengan URL dalam cakupan aplikasi web Anda. URL akan dibuka saat pengguna mengaktifkan pintasan aplikasi.

Pintasan aplikasi dideklarasikan secara opsional dalam anggota array shortcuts dari manifes aplikasi web. Di bawah ini adalah contoh manifes aplikasi web potensial.

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

Dukungan Browser

  • 96
  • 96
  • x
  • 17,4

Sumber

Cara klasik

Jika aplikasi belum diinstal, Anda dapat menyarankan pengguna untuk menarik beberapa link dari halaman web dan melepaskannya di kolom bookmark browser. Dengan demikian, mereka dapat dengan cepat memulai tugas umum atau yang direkomendasikan dalam aplikasi web Anda.

Bacaan lebih lanjut

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