chrome.readingList

рдмреНрдпреМрд░рд╛

рд░реАрдбрд┐рдВрдЧ рд▓рд┐рд╕реНрдЯ рдореЗрдВ рдореМрдЬреВрдж рдЖрдЗрдЯрдо рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдЙрдирдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, chrome.readingList API рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ.

рдЕрдиреБрдорддрд┐рдпрд╛рдВ

readingList

Reading List API рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ "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/"
});

рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕реИрдВрдкрд▓

Reading List API рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдЕрдиреНрдп рдбреЗрдореЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, Reading List API рдХрд╛ рд╕реИрдВрдкрд▓ рджреЗрдЦреЗрдВ.

рдЯрд╛рдЗрдк

AddEntryOptions

рдкреНрд░реЙрдкрд░реНрдЯреА

  • hasBeenRead

    рдмреВрд▓рд┐рдпрди

    рдЕрдЧрд░ рдПрдВрдЯреНрд░реА рдкрдврд╝реА рдЬрд╛ рдЪреБрдХреА рд╣реИ, рддреЛ рдЗрд╕рдХреА рд╡реИрд▓реНрдпреВ true рд╣реЛрдЧреА.

  • title

    рд╕реНрдЯреНрд░рд┐рдВрдЧ

    рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд╛ рдЯрд╛рдЗрдЯрд▓.

  • url

    рд╕реНрдЯреНрд░рд┐рдВрдЧ

    рдПрдВрдЯреНрд░реА рдХрд╛ рдпреВрдЖрд░рдПрд▓.

QueryInfo

рдкреНрд░реЙрдкрд░реНрдЯреА

  • hasBeenRead

    рдмреВрд▓рд┐рдпрди рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ рд╣реИ

    рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкрдврд╝реЗ рдЧрдП (true) рдпрд╛ рдирд╣реАрдВ рдкрдврд╝реЗ рдЧрдП (false) рдЖрдЗрдЯрдо рдЦреЛрдЬрдиреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ.

  • title

    string рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ рд╣реИ

    рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдЯрд▓.

  • url

    string рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ рд╣реИ

    рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдЖрд░рдПрд▓.

ReadingListEntry

рдкреНрд░реЙрдкрд░реНрдЯреА

  • creationTime

    рд╕рдВрдЦреНрдпрд╛

    рдПрдВрдЯреНрд░реА рдмрдирд╛рдП рдЬрд╛рдиреЗ рдХрд╛ рд╕рдордп. рдЗрд╕реЗ 1 рдЬрдирд╡рд░реА, 1970 рдХреЗ рдмрд╛рдж рд╕реЗ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ.

  • hasBeenRead

    рдмреВрд▓рд┐рдпрди

    рдЕрдЧрд░ рдПрдВрдЯреНрд░реА рдкрдврд╝реА рдЬрд╛ рдЪреБрдХреА рд╣реИ, рддреЛ рдЗрд╕рдХреА рд╡реИрд▓реНрдпреВ true рд╣реЛрдЧреА.

  • lastUpdateTime

    рд╕рдВрдЦреНрдпрд╛

    рдПрдВрдЯреНрд░реА рдХреЛ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЗрд╕ рд╕рдордп рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛. рдпрд╣ рд╡реИрд▓реНрдпреВ, 1 рдЬрдирд╡рд░реА, 1970 рд╕реЗ рдЕрдм рддрдХ рдХреЗ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рд╣реЛрддреА рд╣реИ.

  • title

    рд╕реНрдЯреНрд░рд┐рдВрдЧ

    рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд╛ рдЯрд╛рдЗрдЯрд▓.

  • url

    рд╕реНрдЯреНрд░рд┐рдВрдЧ

    рдПрдВрдЯреНрд░реА рдХрд╛ рдпреВрдЖрд░рдПрд▓.

RemoveOptions

рдкреНрд░реЙрдкрд░реНрдЯреА

  • url

    рд╕реНрдЯреНрд░рд┐рдВрдЧ

    рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдЖрд░рдПрд▓.

UpdateEntryOptions

рдкреНрд░реЙрдкрд░реНрдЯреА

  • hasBeenRead

    рдмреВрд▓рд┐рдпрди рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ рд╣реИ

    рдкрдврд╝реЗ рдЬрд╛рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ. рдЕрдЧрд░ рдХреЛрдИ рд╡реИрд▓реНрдпреВ рдирд╣реАрдВ рджреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдореМрдЬреВрджрд╛ рд╕реНрдерд┐рддрд┐ рдмрдиреА рд░рд╣рддреА рд╣реИ.

  • title

    string рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ рд╣реИ

    рдирдпрд╛ рдЯрд╛рдЗрдЯрд▓. рдЕрдЧрд░ рдХреЛрдИ рд╡реИрд▓реНрдпреВ рдирд╣реАрдВ рджреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдореМрдЬреВрджрд╛ рдЯрд╛рдЗрд▓ рдмрдиреА рд░рд╣рддреА рд╣реИ.

  • 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 рдкреИрд░рд╛рдореАрдЯрд░ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

    (entry: ReadingListEntry) => void

onEntryRemoved

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

рдпрд╣ рдЗрд╡реЗрдВрдЯ рддрдм рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рд░реАрдбрд┐рдВрдЧ рд▓рд┐рд╕реНрдЯ рд╕реЗ рдХрд┐рд╕реА ReadingListEntry рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ.

рдкреИрд░рд╛рдореАрдЯрд░

  • рдХреЙрд▓рдмреИрдХ

    рдлрд╝рдВрдХреНрд╢рди

    callback рдкреИрд░рд╛рдореАрдЯрд░ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

    (entry: ReadingListEntry) => void

onEntryUpdated

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

рдЬрдм рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡ рдХреА рдЧрдИ рд╕реВрдЪреА рдореЗрдВ рдХреЛрдИ ReadingListEntry рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рдпрд╣ рдЗрд╡реЗрдВрдЯ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИ.

рдкреИрд░рд╛рдореАрдЯрд░

  • рдХреЙрд▓рдмреИрдХ

    рдлрд╝рдВрдХреНрд╢рди

    callback рдкреИрд░рд╛рдореАрдЯрд░ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

    (entry: ReadingListEntry) => void