chrome.readingList

説明

chrome.readingList API を使用して、リーディング リストのアイテムの読み取りと変更を行います。

権限

readingList

リーディング リスト API を使用するには、拡張機能のマニフェスト ファイルに "readingList" 権限を追加します。

manifest.json:

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

対象

Chrome 120+ MV3+

Chrome には、サイドパネルにリーディング リストがあります。ユーザーはウェブページを保存して、後で読んだり、オフラインで読んだりできます。リーディング リスト API を使用して、既存のアイテムを取得し、リストからアイテムを追加または削除します。

記事数が表示されたリーディング リスト
記事の数を表示するリーディング リスト

コンセプトと使用方法

アイテムの順序

リーディング リスト内のアイテムの順序は保証されません。

アイテムの一意性

アイテムは URL でキー設定されます。これには、ハッシュとクエリ文字列が含まれます。

ユースケース

次のセクションでは、リーディング リスト 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() を使用して、タイトル、URL、読了ステータスを更新できます。次のコードは、アイテムを既読としてマークします。

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

項目を削除する

アイテムを削除するには、chrome.readingList.removeEntry() を使用します。

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

拡張機能のサンプル

リーディング リスト API 拡張機能のデモについては、リーディング リスト API のサンプルをご覧ください。

AddEntryOptions

プロパティ

  • hasBeenRead

    ブール値

    エントリが読み取られた場合は true になります。

  • title

    文字列

    エントリのタイトル。

  • URL

    文字列

    エントリの URL。

QueryInfo

プロパティ

  • hasBeenRead

    ブール値(省略可)

    既読(true)または未読(false)のアイテムを検索するかどうかを示します。

  • title

    文字列 省略可

    検索するタイトル。

  • URL

    文字列 省略可

    検索する URL。

ReadingListEntry

プロパティ

  • creationTime

    数値

    エントリが作成された時刻。1970 年 1 月 1 日からのミリ秒単位で記録されます。

  • hasBeenRead

    ブール値

    エントリが読み取られた場合は true になります。

  • lastUpdateTime

    数値

    エントリが最後に更新された日時。この値は、1970 年 1 月 1 日からのミリ秒数です。

  • title

    文字列

    エントリのタイトル。

  • URL

    文字列

    エントリの URL。

RemoveOptions

プロパティ

  • URL

    文字列

    削除する URL。

UpdateEntryOptions

プロパティ

  • hasBeenRead

    ブール値(省略可)

    更新された既読ステータス。値が指定されていない場合、既存のステータスはそのままになります。

  • title

    文字列 省略可

    新しいタイトル。値が指定されていない場合、既存のタイルはそのまま残ります。

  • URL

    文字列

    更新される URL。

メソッド

addEntry()

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

リーディング リストにエントリが存在しない場合は、エントリを追加します。

パラメータ

  • 必要事項を入力します。

    リーディング リストに追加するエントリ。

戻り値

  • Promise<void>

query()

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

QueryInfo プロパティに一致するすべてのエントリを取得します。指定されていないプロパティは照合されません。

パラメータ

  • 情報

    検索するプロパティ。

戻り値

removeEntry()

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

リーディング リストにエントリが存在する場合は、そのエントリを削除します。

パラメータ

  • 情報

    リーディング リストから削除するエントリ。

戻り値

  • Promise<void>

updateEntry()

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

読書リスト エントリが存在する場合は更新します。

パラメータ

戻り値

  • Promise<void>

イベント

onEntryAdded

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

ReadingListEntry がリーディング リストに追加されるとトリガーされます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (entry: ReadingListEntry) => void

onEntryRemoved

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

ReadingListEntry がリーディング リストから削除されたときにトリガーされます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (entry: ReadingListEntry) => void

onEntryUpdated

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

リーディング リストで ReadingListEntry が更新されたときにトリガーされます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (entry: ReadingListEntry) => void