chrome.readingList

说明

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

权限

readingList

如需使用阅读列表 API,请在扩展程序manifest文件中添加 "readingList" 权限:

manifest.json:

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

可用性

Chrome 120+ MV3+

Chrome 的侧边栏中提供了阅读清单。借助该功能,用户可以保存网页以供日后阅读或离线阅读。使用 Reading List API 检索现有内容,并在列表中添加或移除内容。

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

概念和用法

商品订购

阅读列表中的项目没有固定的顺序。

商品的唯一性

项按网址键值对进行排序。其中包括哈希和查询字符串。

使用场景

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

添加项目

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

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

显示商品

如需显示阅读列表中的项,请使用 chrome.readingList.query() 方法检索这些项。

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

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

将内容标记为已读

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

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

移除项目

如需移除某个项,请使用 chrome.readingList.removeEntry()

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

扩展程序示例

如需查看更多阅读列表 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()

prometido
chrome.readingList.addEntry(
  entry: AddEntryOptions,
  callback?: function,
)

向阅读清单添加条目(如果不存在)。

参数

  • 要添加到阅读清单的条目。

  • callback

    函数(可选)

    callback 参数如下所示:

    () => void

返回

  • Promise<void>

    清单 V3 及更高版本支持 Promise,但为了实现向后兼容性,我们提供了回调。您不能在同一函数调用中同时使用这两种方法。promise 的解析结果与传递给回调的类型相同。

query()

prometido
chrome.readingList.query(
  info: QueryInfo,
  callback?: function,
)

检索与 QueryInfo 属性匹配的所有条目。系统不会匹配未提供的房源。

参数

返回

  • Promise<ReadingListEntry[]>

    清单 V3 及更高版本支持 Promise,但为了实现向后兼容性,我们提供了回调。您不能在同一函数调用中同时使用这两种方法。promise 的解析结果与传递给回调的类型相同。

removeEntry()

prometido
chrome.readingList.removeEntry(
  info: RemoveOptions,
  callback?: function,
)

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

参数

  • 资讯

    要从阅读清单中移除的条目。

  • callback

    函数(可选)

    callback 参数如下所示:

    () => void

返回

  • Promise<void>

    清单 V3 及更高版本支持 Promise,但为了实现向后兼容性,我们提供了回调。您不能在同一函数调用中同时使用这两种方法。promise 的解析结果与传递给回调的类型相同。

updateEntry()

prometido
chrome.readingList.updateEntry(
  info: UpdateEntryOptions,
  callback?: function,
)

更新阅读列表条目(如果有)。

参数

  • 要更新的条目。

  • callback

    函数(可选)

    callback 参数如下所示:

    () => void

返回

  • Promise<void>

    清单 V3 及更高版本支持 Promise,但为了实现向后兼容性,我们提供了回调。您不能在同一函数调用中同时使用这两种方法。promise 的解析结果与传递给回调的类型相同。

事件

onEntryAdded

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

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

参数

onEntryRemoved

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

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

参数

onEntryUpdated

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

当阅读列表中的 ReadingListEntry 发生更新时触发。

参数