ContentIndex.add()
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
BCD tables only load in the browser