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
Objectcontaining the following data:-
id: A uniqueStringidentifier. -
title: AStringtitle for the item. Used in user-visible lists of content. -
title: AStringtitle of the item. Used in user-visible lists of content. -
description: AStringdescription of the item. Used in user-visible lists of content. -
url: AStringcontaining the url of the corresponding HTML document. Needs to be under the scope of the currentservice worker. -
category: Optional AStringdefining the category of content. Can be:-
''An emptyString, this is the default. homepagearticlevideoaudio
-
-
icons: Optional AnArrayof image resources, defined as anObjectwith 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,descriptionorurlare missing, not of typeString, or an emptyString. - The items referenced by
iconsare 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