Skip to content

浏览器探测 — 会话管理

浏览器探测用于处理普通 HTTP 客户端难以应对的网站(JS 渲染、登录验证、HttpOnly Cookie)。探测 WebView 使用独立 profile,与主程序 UI 隔离。

CLI 限制

legado.browser.open()legado.browser.getCookie() 外,其他浏览器探测 API 在 CLI 模式下不可用。

legado.browser.open

打开可见的探测窗口,供用户手动登录或完成验证。

js
legado.browser.open(url) → boolean

用户完成操作并关闭窗口后返回 true

legado.browser.create

创建探测会话,返回 sessionId。

js
legado.browser.create(options?) → string

options

字段类型默认值说明
visiblebooleanfalse是否显示窗口
reuseKeystring复用标识,相同 key 复用窗口
timeoutnumber超时秒数

legado.browser.acquire

获取书源内存级命名会话。同一书源同一 role 复用窗口。

js
legado.browser.acquire(role, options?) → string
参数类型说明
rolestring会话角色名(如 'search''content'
optionsobjectcreate 的 options

会话复用示例

js
// init() 在书源加载时自动调用一次
function init() {
  // 预创建一个隐藏的探测会话
  globalThis.browserId = legado.browser.acquire('main', { visible: false });
}

function chapterContent(chapterUrl) {
  var id = globalThis.browserId;
  legado.browser.navigate(id, chapterUrl, { waitUntil: 'load' });
  return legado.browser.eval(id, 'return document.querySelector("#content").innerText');
}

legado.browser.show / hide / close

js
legado.browser.show(id)   // 显示探测窗口
legado.browser.hide(id)   // 隐藏探测窗口
legado.browser.close(id)  // 关闭并销毁会话

legado.browser.setUserAgent

设置探测 WebView 的默认 UA,新创建的会话生效。

js
legado.browser.setUserAgent(ua)

基于 MIT 许可发布