Appearance
高级开发 - API 详解
OPENUGC_API_V2 概述
OPENUGC_API_V2 是插件系统的核心父类,提供了丰富的 API 接口,让您能够:
- 控制页面打开和关闭
- 执行异步操作
- 等待页面元素加载
- 跨页面通信
- 管理页面生命周期
构造函数
js
constructor(args) {
this.args = args; // 工具参数
this.BRIDGE_API = window['BRIDGE_API']; // 浏览器桥接API
}1. sleep() - 异步等待
功能:让工具暂停执行指定时间
参数:
t(number): 等待时间(毫秒),默认 1000ms
使用示例:
js
class Tool extends OPENUGC_API_V2 {
async run() {
console.log('开始执行...');
await this.sleep(2000); // 等待2秒
console.log('继续执行...');
// 等待元素加载
const button = document.querySelector('#submit-btn');
await this.sleep(500); // 等待DOM更新
button.click();
return '操作完成';
}
}应用场景:
- 等待页面加载
- 等待动画完成
- 节流控制
- 避免频繁操作
2. OpenUrl() - 打开并管理页面
功能:打开新页面并获取页面管理句柄
参数:
opt(object): 页面配置选项url(string): 目标URLrunAt(string): 脚本注入时机'document-start'或'document-end'initJs(string): 初始化脚本showLog(boolean): 是否显示日志
返回值:页面管理对象
id: 页面IDexecute(js): 在页面中执行代码close(): 关闭页面
完整示例:
js
class Tool extends OPENUGC_API_V2 {
async run() {
// 打开新页面
const page = await this.OpenUrl({
url: 'https://example.com',
runAt: 'document-end',
showLog: true
});
try {
// 在页面中执行代码
const result = await page.execute(`
// 等待页面加载完成
await new Promise(resolve => setTimeout(resolve, 1000));
// 获取页面标题
const title = document.title;
// 提取数据
const items = Array.from(document.querySelectorAll('.item'))
.map(item => ({
text: item.innerText.trim(),
link: item.querySelector('a')?.href
}));
return { title, items };
`);
console.log('页面标题:', result.title);
console.log('提取的数据:', result.items);
return result;
} finally {
// 关闭页面
page.close();
}
}
}