browser.readingList

说明

使用 chrome.readingList API 读取和修改阅读清单中的内容。

权限

readingList

如需使用 Reading List API,请在扩展程序清单文件中添加 "readingList" 权限:

manifest.json:

{
  "name": "My reading list extension",
  ...
  "permissions": [
    "readingList"
  ]
}

可用性

Chrome 120+ browser.*(自 Chrome 148 起) MV3+

Chrome 的侧边栏中有一个阅读清单。用户可以保存网页,以便日后阅读或离线阅读。 使用 Reading List API 检索现有内容,以及在列表中添加或移除内容。

显示多篇文章的阅读清单
显示多篇文章的阅读清单

概念和用法

商品排序

阅读清单中的内容不按任何固定顺序排列。

商品唯一性

内容按网址进行键控。这包括哈希和查询字符串。

使用场景

以下部分演示了 Reading List API 的一些常见用例。如需查看完整的扩展程序示例,请参阅扩展程序示例。

添加项

如需将内容添加到阅读清单,请使用 browser.readingList.addEntry():

browser.readingList.addEntry({
  title: "New to the web platform in September | web.dev",
  url: "https://developer.chrome.com/",
  hasBeenRead: false
});

展示广告订单项

如需显示阅读清单中的内容,请使用 browser.readingList.query() 方法检索这些内容。

const items = await browser.readingList.query({});

for (const item of items) {
  // Do something do display the item
}

将内容标记为已读

您可以使用 browser.readingList.updateEntry() 更新标题、网址和阅读状态。以下代码会将内容标记为已读:

browser.readingList.updateEntry({
  url: "https://developer.chrome.com/",
  hasBeenRead: true
});

移除项目

如需移除某项内容,请使用 browser.readingList.removeEntry():

browser.readingList.removeEntry({
  url: "https://developer.chrome.com/"
});

扩展程序示例

如需查看更多 Reading List API 扩展程序演示,请参阅 Reading List API 示例。

类型

AddEntryOptions

属性

  • hasBeenRead

    布尔值

    如果条目已被读取,则为 true。

  • title

    字符串

    条目的标题。

  • 网址

    字符串

    条目的网址。

QueryInfo

属性

  • hasBeenRead

    布尔值 (可选)

    指明是搜索已读 (true) 还是未读 (false) 内容。

  • title

    字符串 可选

    要搜索的标题。

  • 网址

    字符串 可选

    要搜索的网址。

ReadingListEntry

属性

  • creationTime

    数值

    条目的创建时间。以自 1970 年 1 月 1 日以来的毫秒数记录。

  • hasBeenRead

    布尔值

    如果条目已被读取,则为 true。

  • lastUpdateTime

    数值

    条目的上次更新时间。此值是自 1970 年 1 月 1 日以来的毫秒数。

  • title

    字符串

    条目的标题。

  • 网址

    字符串

    条目的网址。

RemoveOptions

属性

  • 网址

    字符串

    要移除的网址。

UpdateEntryOptions

属性

  • hasBeenRead

    布尔值 (可选)

    更新后的已读状态。如果未提供值,则保留现有状态。

  • title

    字符串 可选

    新标题。如果未提供值,则保留现有图块。

  • 网址

    字符串

    要更新的网址。

方法

addEntry()

browser.readingList.addEntry(
  entry: AddEntryOptions,
)
: Promise<void>

如果阅读清单中不存在某个条目,则将其添加到阅读清单中。

参数

返回

  • 承诺<void>

    在添加条目后解析。

query()

browser.readingList.query(
  info: QueryInfo,
)
: Promise<ReadingListEntry[]>

检索与 QueryInfo 属性匹配的所有条目。未提供的属性将不会进行匹配。

参数

返回

removeEntry()

browser.readingList.removeEntry(
  info: RemoveOptions,
)
: Promise<void>

从阅读清单中移除条目(如果存在)。

参数

返回

  • 承诺<void>

    在条目移除后解析。

updateEntry()

browser.readingList.updateEntry(
  info: UpdateEntryOptions,
)
: Promise<void>

更新阅读清单条目(如果存在)。

参数

返回

  • 承诺<void>

    在匹配的条目更新后解析。

事件

onEntryAdded

browser.readingList.onEntryAdded.addListener(
  callback: function,
)

当ReadingListEntry添加到阅读清单时触发。

参数

onEntryRemoved

browser.readingList.onEntryRemoved.addListener(
  callback: function,
)

当 ReadingListEntry 从阅读清单中移除时触发。

参数

onEntryUpdated

browser.readingList.onEntryUpdated.addListener(
  callback: function,
)

当阅读清单中的 ReadingListEntry 更新时触发。

参数