نظرة عامة على المنصات
تطبيق iOS
التوفر: معاينة داخلية. تطبيق iOS غير متاح للجمهور بعد.
ما يفعله
- يتصل ببوابة عبر WebSocket (شبكة محلية LAN أو شبكة ذيل tailnet).
- يعرض إمكانيات العقدة: Canvas، ولقطة الشاشة، والتقاط الكاميرا، والموقع، ووضع التحدث، والإيقاظ الصوتي.
- يتلقى أوامر
node.invokeويبلغ عن أحداث حالة العقدة.
المتطلبات
- بوابة تعمل على جهاز آخر (macOS، أو Linux، أو Windows عبر WSL2).
- مسار الشبكة:
- نفس الشبكة المحلية عبر Bonjour، أو
- شبكة ذيل عبر DNS-SD أحادي البث (مثال النطاق:
openclaw.internal.)، أو - المضيف/المنفذ يدوياً (خيار احتياطي).
البدء السريع (إقران + اتصال)
- ابدأ تشغيل البوابة:
openclaw gateway --port 18789
- في تطبيق iOS، افتح الإعدادات واختر بوابة مكتشفة (أو فعّل "المضيف اليدوي" وأدخل المضيف/المنفذ).
- وافق على طلب الإقران على مضيف البوابة:
openclaw devices list
openclaw devices approve <requestId>
- تحقق من الاتصال:
openclaw nodes status
openclaw gateway call node.list --params "{}"
مسارات الاكتشاف
Bonjour (شبكة محلية LAN)
تعلن البوابة عن _openclaw-gw._tcp على local.. يعرض تطبيق iOS هذه تلقائياً.
شبكة الذيل Tailnet (عبر الشبكات)
إذا كان mDNS محظوراً، استخدم منطقة DNS-SD أحادية البث (اختر نطاقاً؛ مثال: openclaw.internal.) و DNS المقسم لـ Tailscale. راجع Bonjour للحصول على مثال CoreDNS.
المضيف/المنفذ يدوياً
في الإعدادات، فعّل المضيف اليدوي وأدخل مضيف البوابة + المنفذ (الافتراضي 18789).
Canvas + A2UI
تعرض عقدة iOS لوحة رسم WKWebView. استخدم node.invoke لقيادتها:
openclaw nodes invoke --node "iOS Node" --command canvas.navigate --params '{"url":"http://<gateway-host>:18789/__openclaw__/canvas/"}'
ملاحظات:
- يخدم مضيف لوحة رسم البوابة
/__openclaw__/canvas/و/__openclaw__/a2ui/. - يتم تقديمه من خادم HTTP الخاص بالبوابة (نفس منفذ
gateway.port، الافتراضي18789). - تنتقل عقدة iOS تلقائياً إلى A2UI عند الاتصال عند الإعلان عن عنوان URL لمضيف لوحة الرسم.
- للعودة إلى السقالة المدمجة، استخدم
canvas.navigateمع{"url":""}.
تقييم Canvas / لقطة
openclaw nodes invoke --node "iOS Node" --command canvas.eval --params '{"javaScript":"(() => { const {ctx} = window.__openclaw; ctx.clearRect(0,0,innerWidth,innerHeight); ctx.lineWidth=6; ctx.strokeStyle=\"#ff2d55\"; ctx.beginPath(); ctx.moveTo(40,40); ctx.lineTo(innerWidth-40, innerHeight-40); ctx.stroke(); return \"ok\"; })()"}'
openclaw nodes invoke --node "iOS Node" --command canvas.snapshot --params '{"maxWidth":900,"format":"jpeg"}'
الإيقاظ الصوتي + وضع التحدث
- الإيقاظ الصوتي ووضع التحدث متاحان في الإعدادات.
- قد يعلق iOS الصوت في الخلفية؛ تعامل مع ميزات الصوت على أنها "أفضل جهد" عندما لا يكون التطبيق نشطاً.
أخطاء شائعة
NODE_BACKGROUND_UNAVAILABLE: اجلب تطبيق iOS إلى الواجهة الأمامية (أوامر canvas/الكاميرا/الشاشة تتطلب ذلك).A2UI_HOST_NOT_CONFIGURED: لم تعلن البوابة عن عنوان URL لمضيف لوحة الرسم؛ تحقق منcanvasHostفي تكوين البوابة.- مطالبة الإقران لا تظهر أبداً: شغّل
openclaw devices listووافق يدوياً. - فشل إعادة الاتصال بعد إعادة التثبيت: تم مسح رمز الإقران من Keychain؛ أعد إقران العقدة.