语法
js
add(contentDescription)
参数
contentDescription-
一个包含以下数据的
Objectid-
一个唯一的
String标识符。 title-
一个用于该项目的
String标题。用于用户可见的内容列表中。 description-
一个用于该项目的
String描述。用于用户可见的内容列表中。 url-
一个包含相应 HTML 文档 URL 的
String。需要位于当前 Service Worker 的作用域内。 category可选-
一个定义内容类别的
String。可以是:''一个空的String,这是默认值。homepagearticlevideoaudio
icons可选
返回值
返回一个解析为 undefined 的 Promise。
异常
TypeError-
在以下情况下会抛出此异常:
- Service Worker 的注册不存在,或者 Service Worker 不包含
FetchEvent。 id、title、description或url参数缺失、类型不是String,或者为空String。url参数与 Service Worker 的 同源策略 不符。icons中的某个项目不是图像类型,或者获取icons中的某个项目时因网络错误或解码错误而失败。
- Service Worker 的注册不存在,或者 Service Worker 不包含
示例
这里我们声明了一个格式正确的项目,并创建了一个异步函数,该函数使用 add 方法将其注册到 内容索引。
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);
}
}
add 方法也可以在 Service Worker 作用域内使用。
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);
规范
| 规范 |
|---|
| Content Index # content-index-add |
浏览器兼容性
加载中…