説明
chrome.readingList API を使用して、リーディング リストのアイテムの読み取りと変更を行います。
権限
readingListリーディング リスト API を使用するには、拡張機能のマニフェスト ファイルに "readingList" 権限を追加します。
manifest.json:
{
  "name": "My reading list extension",
  ...
  "permissions": [
    "readingList"
  ]
}
対象
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 プロパティに一致するすべてのエントリを取得します。指定されていないプロパティは照合されません。
パラメータ
- 
    情報
検索するプロパティ。
 
戻り値
- 
            
Promise<ReadingListEntry[]>
 
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
- 
    必要事項を入力します。
 
 -