Daha Zengin Yükleme Kullanıcı Arayüzü nasıl eklenir?

Uygulama mağazaları, kullanıcıların uygulamayı yüklemeye karar vermesine yardımcı olan ekran görüntüleri ve metin bilgileriyle geliştiricilerin uygulamalarını yüklemeden önce sergileyebilecekleri bir alan sağlar. Daha zengin yükleme kullanıcı arayüzü, web uygulaması geliştiricilerinin kullanıcılarını uygulamalarını doğrudan tarayıcıdan yüklemeye davet etmeleri için benzer bir alan sağlar. Bu geliştirilmiş kullanıcı arayüzü, Android ve masaüstü için Chrome ortamlarında kullanılabilir.

Varsayılan istem

Yeterli bağlam sağlamayan varsayılan deneyim için aşağıdaki örneğe bakın.

Masaüstü için tarayıcının varsayılan yükleme iletişim kutusu.
Masaüstünde varsayılan yükleme iletişim kutusu


Mobil cihazlar için tarayıcının varsayılan yükleme iletişim kutusu.
Mobil cihazlarda varsayılan yükleme iletişim kutusu

Daha Zengin Yükleme Arayüzü

Normal küçük varsayılan istem yerine Daha Zengin Yükleme Kullanıcı Arayüzü iletişim kutusunu almak için web manifestinize screenshots ve description alanlarını ekleyin. Aşağıdaki Squoosh.app örneğini inceleyin:

Masaüstü ve mobil cihazlarda daha zengin yükleme kullanıcı arayüzü
Masaüstü ve mobil cihazlarda daha zengin yükleme kullanıcı arayüzü.

Daha Zengin Yükleme Kullanıcı Arayüzü iletişim kutusu, web manifestindeki description ve screenshots alanlarının içeriklerinden oluşur.

İletişim kutusunu tetiklemek için ilgili form faktörüne ait en az bir ekran görüntüsü eklemeniz yeterlidir ancak açıklamayı da eklemeniz önerilir. Bu alanların ayrıntılarını aşağıda görebilirsiniz.

Ekran görüntüleri

Ekran görüntüleri yeni yükleme kullanıcı arayüzüne gerçekten 'daha zengin' kısımlar kattığından kullanılmalarını önemle tavsiye ediyoruz. Manifest dosyanıza, en az bir resim gerektiren bir dizi alan ve Chrome'da en fazla sekiz resim görüntüleyen screenshots üyesini eklersiniz. Aşağıda bir örnek verilmiştir.

 "screenshots": [
    {
     "src": "source/image1.gif",
      "sizes": "640x320",
      "type": "image/gif",
      "form_factor": "wide",
      "label": "Wonder Widgets"
    }
]

Ekran görüntüleri şu ölçütlere uygun olmalıdır:

  • Genişlik ve yükseklik en az 320 piksel,en fazla 3.840 piksel olmalıdır.
  • Maksimum boyut, minimum boyutun 2,3 katından fazla olamaz.
  • Aynı form faktörü değerine sahip tüm ekran görüntüleri aynı en boy oranlarına sahip olmalıdır.
  • Yalnızca JPEG ve PNG resim biçimleri desteklenir.
  • Yalnızca sekiz ekran görüntüsü gösterilir. Daha fazla anahtar kelime eklenirse, kullanıcı aracısı bunları yoksayar.

Ayrıca, doğru şekilde oluşturulması için resmin boyutunu ve türünü de eklemeniz gerekir. Bu demoya göz atın.

form_factor, tarayıcıya ekran görüntüsünün masaüstü (wide) veya mobil ortamlarda (narrow) gösterilmesinin gerektiğini belirtir.

Açıklama

description üyesi, kullanıcıyı uygulamayı kullanmaya devam etmeye davet etmek için yükleme isteminde uygulamayı açıklar.

İletişim kutusu, description olmadan bile görüntülenir ancak kullanılması önerilir. 7 satırlık (yaklaşık 324 karakter) metinden sonra bir maksimum değer uygulanır, uzun açıklamalar kısaltılır ve sonuna üç nokta eklenir (bu örnekte görebileceğiniz gibi).

{
…
"description": "Compress and compare images with different codecs
right in your browser."
}
Açıklama eklendi
Açıklama eklendi.
Kısaltılmış daha uzun bir açıklama.
Uzun açıklamalar kısaltılır.

Açıklama, yükleme isteminin üst kısmında görünür.

Ekran görüntülerinde, yükleme iletişim kutularında uygulamanın kaynağının da listelendiğini fark etmiş olabilirsiniz. Kullanıcı arayüzüne sığmayacak kadar uzun olan kaynaklar kısaltılır. Bu, çıkarma olarak da bilinir ve kullanıcıları korumak için güvenlik önlemi olarak kullanılır.

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 add Richer Install UI to your web app</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 add Richer Install UI to your web app</h1>
    <ol>
      <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>
      <li>
        When you click on install a dialog similar to the ones from app stores
        will be displayed.
      </li>
      <li>
        The dialog includes the `description` and `screenshots` set in the app
        manifest.
      </li>
      <li>
        Screenshots should be different depending if the app is being installed
        on a mobile or desktop device, according to the `form_factor` value set
        for the screenshots on the manifest
      </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();
  });
}