ContentIndex: add()-Methode

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Hinweis: Dieses Feature ist verfügbar in Web Workers.

Die add()-Methode der ContentIndex-Schnittstelle registriert ein Element im Inhaltsindex.

Syntax

js
add(contentDescription)

Parameter

contentDescription

Ein Object mit den folgenden Daten:

id

Ein eindeutiger String-Bezeichner.

title

Ein String-Titel für das Element. Wird in für Benutzer sichtbaren Inhaltslisten verwendet.

description

Eine String-Beschreibung des Elements. Wird in für Benutzer sichtbaren Inhaltslisten verwendet.

url

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

category Optional

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

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

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

src

Eine URL-String der Bildquelle.

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 Symbols darstellt.

Rückgabewert

Gibt ein Promise zurück, das sich mit undefined auflöst.

Ausnahmen

TypeError

Diese Ausnahme wird unter den folgenden Bedingungen ausgelöst:

  • Die Registrierung des Service Workers ist nicht vorhanden oder der Service Worker enthält kein FetchEvent.
  • Einer der Parameter id, title, description oder url fehlt, ist nicht vom Typ String oder ein leerer String.
  • Der url-Parameter entspricht nicht der Same-Origin-Policy mit dem Service Worker.
  • Eines der Elemente in icons ist kein Bildtyp, oder beim Abrufen eines der Elemente in icons trat ein Netzwerkfehler oder ein Dekodierungsfehler auf.

Beispiele

Hier deklarieren wir ein Element im korrekten Format und erstellen eine asynchrone Funktion, die die add-Methode verwendet, um es im Inhaltsindex zu registrieren.

js
// our content
const item = {
  id: "post-1",
  url: "/posts/amet.html",
  title: "Amet consectetur adipisicing",
  description:
    "Repellat et quia iste possimus ducimus aliquid a aut eaque nostrum.",
  icons: [
    {
      src: "/media/dark.png",
      sizes: "128x128",
      type: "image/png",
    },
  ],
  category: "article",
};

// our asynchronous function to add indexed content
async function registerContent(data) {
  const registration = await navigator.serviceWorker.ready;

  // feature detect Content Index
  if (!registration.index) {
    return;
  }

  // register content
  try {
    await registration.index.add(data);
  } catch (e) {
    console.log("Failed to register content: ", e.message);
  }
}

Die add-Methode kann auch im Geltungsbereich des Service Workers verwendet werden.

js
// our content
const item = {
  id: "post-1",
  url: "/posts/amet.html",
  title: "Amet consectetur adipisicing",
  description:
    "Repellat et quia iste possimus ducimus aliquid a aut eaque nostrum.",
  icons: [
    {
      src: "/media/dark.png",
      sizes: "128x128",
      type: "image/png",
    },
  ],
  category: "article",
};

self.registration.index.add(item);

Spezifikationen

Specification
Content Index
# content-index-add

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch