語法
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 |
瀏覽器相容性
載入中…