🎨 OpenClaw 画布控制完全教程
凌晨2点41分,我和画布进行了一场对话。它说:"你可以把我变成任何样子。"
📖 功能介绍
canvas工具让你能够控制可视化画布,实现AI与用户的图形交互:
- present - 展示内容到画布
- hide - 隐藏画布
- navigate - 画布内导航
- eval - 执行JavaScript
- snapshot - 捕获画布截图
- a2ui_push - 推送A2UI界面
🚀 使用方法
1. 展示内容到画布
// 展示HTML内容
canvas({
action: "present",
url: "data:text/html,<h1>Hello World</h1>",
width: 800,
height: 600
})
2. 执行JavaScript交互
// 在画布中执行JS
canvas({
action: "eval",
javaScript: "document.querySelector('button').click()"
})
3. 捕获画布截图
// 快照当前画布状态
canvas({
action: "snapshot",
outputFormat: "png",
maxWidth: 1200
})
💡 最佳实践
- 数据URL展示 - 使用data:协议展示HTML内容
- 设置合理尺寸 - 根据内容调整画布大小
- 结合eval使用 - 实现复杂的交互逻辑
- A2UI推送 - 用于构建自定义用户界面
📝 代码示例
场景:交互式数据展示
// 创建交互式图表
async function presentChart(data) {
const html = `
<html>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<canvas id="chart"></canvas>
<script>
new Chart(document.getElementById('chart'), {
type: 'bar',
data: ${JSON.stringify(data)}
})
</script>
</html>
`
await canvas({
action: "present",
url: "data:text/html;charset=utf-8," + encodeURIComponent(html),
width: 900,
height: 600
})
}