Android App (Node)
Snapshotni qo‘llab-quvvatlash
- Rol: hamroh tugun ilovasi (Android Gateway’ni xost qilmaydi).
- Gateway talab qilinadi: ha (uni macOS, Linux yoki Windows’da WSL2 orqali ishga tushiring).
- O‘rnatish: Getting Started + Pairing.
- Gateway: Yo‘riqnoma + Konfiguratsiya.
- Protokollar: Gateway protocol (tugunlar + boshqaruv tekisligi).
Tizim boshqaruvi
Tizim boshqaruvi (launchd/systemd) Gateway xostida joylashgan. Qarang: Gateway.Ulanish bo‘yicha Runbook
Android tugun ilovasi ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway Android to‘g‘ridan-to‘g‘ri Gateway WebSocket’iga ulanadi (standartws://<host>:18789) va Gateway’ga tegishli pairing’dan foydalanadi.
Talablar
- Gateway’ni “master” mashinada ishga tushirishingiz mumkin.
- Android qurilma/emulyator gateway WebSocket’iga yetib bora olishi kerak:
- mDNS/NSD bilan bir xil LAN’da, yoki
- Wide-Area Bonjour / unicast DNS-SD’dan foydalangan holda bir xil Tailscale tailnet’da (quyida qarang), yoki
- Gateway xosti/portini qo‘lda kiritish (zaxira usul)
- CLI’ni (
openclaw) gateway mashinasida (yoki SSH orqali) ishga tushira olishingiz mumkin.
1. Gateway’ni ishga tushiring
listening on ws://0.0.0.0:18789
- Gateway xostidagi
~/.openclaw/openclaw.jsonfaylidagateway.bind: "tailnet"ni o‘rnating. - Gateway’ni / macOS menyu paneli ilovasini qayta ishga tushiring.
2. Discovery’ni tekshiring (ixtiyoriy)
Gateway mashinasidan:Tailnet (Vienna ⇄ London) orqali unicast DNS-SD yordamida discovery
Android NSD/mDNS discovery tarmoqlar orasidan o‘tmaydi. Agar Android tuguningiz va gateway turli tarmoqlarda bo‘lsa, lekin Tailscale orqali ulangan bo‘lsa, Wide-Area Bonjour / unicast DNS-SD’dan foydalaning:- Gateway xostida DNS-SD zonani (masalan,
openclaw.internal.) sozlang va_openclaw-gw._tcpyozuvlarini e’lon qiling. - Tanlangan domen uchun Tailscale split DNS’ni sozlab, uni o‘sha DNS serverga yo‘naltiring.
3. Android’dan ulaning
Android ilovasida:- Ilova gateway ulanishini foreground service (doimiy bildirishnoma) orqali faol holda saqlaydi.
- Settings’ni oching.
- Discovered Gateways bo‘limida gateway’ingizni tanlab, Connect ni bosing.
- Agar mDNS bloklangan bo‘lsa, Advanced → Manual Gateway (xost + port) dan foydalanib, Connect (Manual) ni bosing.
- Agar yoqilgan bo‘lsa, qo‘lda kiritilgan endpoint, aks holda
- Oxirgi topilgan gateway (imkon qadar).
4. Pairing’ni tasdiqlang (CLI)
Gateway mashinasida:5. Tugun ulanganini tekshiring
-
- Via tugunlar holati:
-
Via Gateway:
5. 6. Chat + tarix
- Android tugunining Chat oynasi gateway’ning asosiy sessiya kaliti (
main) dan foydalanadi, shuning uchun tarix va javoblar WebChat va boshqa mijozlar bilan bo‘lishiladi:
-
- Tarix:
chat.history
- Tarix:
-
- Yuborish:
chat.send
- Yuborish:
-
- Push yangilanishlar (best-effort):
chat.subscribe→event:"chat"
- Push yangilanishlar (best-effort):
10. 7. Canvas + kamera
11. Gateway Canvas Host (veb kontent uchun tavsiya etiladi)
- Agar tugun agent diskda tahrirlashi mumkin bo‘lgan haqiqiy HTML/CSS/JS ni ko‘rsatsin desangiz, tugunni Gateway canvas host’ga yo‘naltiring.
gateway.port bilan bir xil port, standart 18789).
-
Tailnet (ixtiyoriy): agar ikkala qurilma ham Tailscale’da bo‘lsa,
.localo‘rniga MagicDNS nomi yoki tailnet IP’dan foydalaning, masalan:http://<gateway-magicdns>:18793/__openclaw__/canvas/. - Bu server HTML ichiga live-reload mijozini qo‘shadi va fayllar o‘zgarganda qayta yuklaydi.
.local o‘rniga MagicDNS nomi yoki tailnet IP dan foydalaning, masalan http://<gateway-magicdns>:18789/__openclaw__/canvas/.
-
Bu server HTML ichiga live-reload mijozini qo‘shadi va fayllar o‘zgarganda qayta yuklaydi.
A2UI host manzili:
http://<gateway-host>:18789/__openclaw__/a2ui/. - Canvas buyruqlari (faqat oldingi rejim):
-
canvas.eval,canvas.snapshot,canvas.navigate(standart scaffold’ga qaytish uchun{"url":""}yoki{"url":"/"}dan foydalaning). 22.canvas.snapshot{ format, base64 }ni qaytaradi (standartformat="jpeg").
-
- A2UI:
canvas.a2ui.push,canvas.a2ui.reset(canvas.a2ui.pushJSONLeski alias)
- A2UI:
- Kamera buyruqlari (faqat oldingi rejim; ruxsat bilan cheklangan):
camera.snap(jpg)camera.clip(mp4)
- Parametrlar va CLI yordamchilari uchun Camera node ga qarang.