ContentIndex: getAll() Methode

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die getAll()-Methode des ContentIndex-Interfaces gibt ein Promise zurück, das mit einer iterierbaren Liste von Inhaltsindexeinträgen aufgelöst wird.

Syntax

js
getAll()

Parameter

Keine.

Rückgabewert

Gibt ein Promise zurück, das mit einem Array von contentDescription-Elementen aufgelöst wird.

contentDescription

Jedes zurückgegebene Element ist ein Object mit den folgenden Daten:

id

Ein eindeutiger String-Bezeichner.

title

Ein String-Titel des Elements. Wird in benutzerfreundlichen Inhaltslisten verwendet.

description

Eine String-Beschreibung des Elements. Wird in benutzerfreundlichen Inhaltslisten verwendet.

url

Ein String mit der URL des entsprechenden HTML-Dokuments. Muss im Bereich des aktuellen Service Workers liegen.

category Optional

Ein String, das die Kategorie des Inhalts definiert. Kann sein:

  • '' Ein leerer String, dies ist der Standard.
  • homepage
  • article
  • video
  • audio
icons Optional

Ein Array von Bildressourcen, definiert als ein Object mit den folgenden Daten:

src

Eine URL-String der Quelldatei.

sizes Optional

Eine String-Darstellung der Bildgröße.

type Optional

Der MIME-Typ des Bildes.

label Optional

Ein String, der den zugänglichen Namen des Icons darstellt.

Ausnahmen

Es werden keine Ausnahmen ausgelöst. Wenn keine Elemente im Inhaltsindex vorhanden sind, wird ein leeres Array zurückgegeben.

Beispiele

Das folgende Beispiel zeigt eine asynchrone Funktion, die Elemente aus dem Inhaltsindex abruft und über jeden Eintrag iteriert, um eine Liste für die Schnittstelle zu erstellen.

js
async function createReadingList() {
  // access our service worker registration
  const registration = await navigator.serviceWorker.ready;

  // get our index entries
  const entries = await registration.index.getAll();

  // create a containing element
  const readingListElem = document.createElement("div");

  // test for entries
  if (entries.length === 0) {
    // if there are no entries, display a message
    const message = document.createElement("p");
    message.innerText =
      "You currently have no articles saved for offline reading.";

    readingListElem.append(message);
  } else {
    // if entries are present, display in a list of links to the content
    const listElem = document.createElement("ul");

    for (const entry of entries) {
      const listItem = document.createElement("li");

      const anchorElem = document.createElement("a");
      anchorElem.innerText = entry.title;
      anchorElem.setAttribute("href", entry.url);

      listElem.append(listItem);
    }

    readingListElem.append(listElem);
  }
}

Spezifikationen

Specification
Content Index
# content-index-getall

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch