Was macht Canvas?
Verwende Canvas, um HTML auf verbundenen Mac/iOS/Android-Knoten anzuzeigen.
Modell
- Der Canvas-Host stellt Dateien aus
plugins.entries.canvas.config.host.rootbereit. - Canvas-Routen leben auf dem HTTP-Port des Gateways (
gateway.port, Standard18789). - Die Node-Bridge sendet Canvas-URLs an verbundene Knoten-Apps.
- Knoten-Apps rendern URLs in einer WebView.
- Der Hostname folgt
gateway.bind: Loopback nur lokal, LAN-IP für LAN, Tailscale-Host für Tailnet, automatisch beste Route wählen. - Localhost-URLs funktionieren nur für einen Knoten auf demselben Rechner.
- Gekoppelte Knoten erhalten normalerweise knotenspezifische
pluginSurfaceUrls.canvas-Fähigkeits-URLs; bevorzuge diese, wenn verfügbar.
Konfiguration
Aktive Konfiguration: $OPENCLAW_CONFIG_PATH oder ~/.openclaw/openclaw.json.
{
"plugins": {
"entries": {
"canvas": {
"config": {
"host": {
"enabled": true,
"root": "~/.openclaw/canvas",
"liveReload": true
}
}
}
}
},
"gateway": { "bind": "auto" }
}
Aktionen
present: Canvas anzeigen, optionale URL.hide: Canvas ausblenden.navigate: neue URL öffnen.eval: JavaScript im aktuellen Canvas ausführen.snapshot: Bildschirmfoto erstellen.
Arbeitsablauf
- Stelle sicher, dass der Canvas-Plugin-Host aktiviert ist.
- Lege HTML/CSS/JS unter
plugins.entries.canvas.config.host.rootoder dem Standard-Canvas-Verzeichnis ab. - Verwende eine Route, die vom Zielknoten erreichbar ist.
- Präsentiere die gehostete URL:
/__openclaw__/canvas/<file>.html. - Verwende
snapshot, wenn der Benutzer einen Nachweis benötigt.
URL-Format
http://<gateway-host>:<gateway.port>/__openclaw__/canvas/index.html
http://<gateway-host>:<gateway.port>/__openclaw__/canvas/games/snake.html
Pfadzuordnung:
/__openclaw__/canvas/index.html-><Canvas-Host-Stammverzeichnis>/index.html/__openclaw__/canvas/games/snake.html-><Canvas-Host-Stammverzeichnis>/games/snake.html
Fehlerbehebung
- Knoten sieht localhost, ist aber entfernt: Korrigiere
gateway.bindoder die öffentliche URL, generiere URL neu. - LAN-Knoten kann nicht laden: Überprüfe gleiches Netzwerk, Firewall, Gateway-Port und Authentifizierungs-/Fähigkeits-URL.
- Tailnet-Knoten kann nicht laden: Überprüfe Tailscale-Status und beworbenen Host.
- Leere Seite: URL lokal öffnen, Browserkonsole prüfen, dann Knoten-Snapshot erstellen.
- Live-Reload fehlt: Überprüfe
liveReloadund Dateischreiben unter dem Stammverzeichnis.