ContentIndex.add()
Draft: This page is not complete.
The add()
method of the ContentIndex
interface registers an item with the content index
.
Syntax
ContentIndex.add(ContentDescription).then(...);
Parameters
- ContentDescription
-
An
Object
containing the following data:-
id
: A uniqueString
identifier. -
title
: AString
title for the item. Used in user-visible lists of content. -
title
: AString
title of the item. Used in user-visible lists of content. -
description
: AString
description of the item. Used in user-visible lists of content. -
url
: AString
containing the url of the corresponding HTML document. Needs to be under the scope of the currentservice worker
. -
category
: Optional AString
defining the category of content. Can be:-
''
An emptyString
, this is the default. homepage
article
video
audio
-
-
icons
: Optional AnArray
of image resources, defined as anObject
with the following data:
-
Return value
Returns a Promise
that resolves with undefined
Exceptions
TypeError
-
This exception is thrown in the following conditions:
- The service worker's registration is not present or the service worker does not contain a
FetchEvent
. - The
id
,title
,description
orurl
are missing, not of typeString
, or an emptyString
. - The items referenced by
icons
are not of image type.
- The service worker's registration is not present or the service worker does not contain a
Examples
Here we're declaring an item in the correct format and creating an asynchronous function which uses the add
method to register it with the content index
.
// 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); } }
The add
method can also be used within the service worker
scope.
// 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);
Specifications
Specification |
---|
Content Index # content-index-add |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
add |
No |
No |
No |
No |
No |
No |
84 |
84 |
No |
60 |
No |
14.0 |
See also
- An introductory article on the Content Index API
- An app which uses the Content Index API to list and remove 'save for later' content
- Service Worker API, along with information about Cache and CacheStorage
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ContentIndex/add