Documentation Index
Fetch the complete documentation index at: https://openclawhub.vn/llms.txt
Use this file to discover all available pages before exploring further.
Ứng dụng iOS (Node)
Khả dụng: xem trước nội bộ. Ứng dụng iOS chưa được phân phối công khai.Chức năng
- Kết nối với Gateway qua WebSocket (LAN hoặc tailnet).
- Cung cấp khả năng của node: Canvas, chụp màn hình, chụp ảnh từ camera, định vị, chế độ nói, đánh thức bằng giọng nói.
- Nhận lệnh
node.invokevà báo cáo sự kiện trạng thái của node.
Yêu cầu
- Gateway chạy trên thiết bị khác (macOS, Linux, hoặc Windows qua WSL2).
- Đường dẫn mạng:
- Cùng LAN qua Bonjour, hoặc
- Tailnet qua unicast DNS-SD (ví dụ:
openclaw.internal.), hoặc - Host/port thủ công (dự phòng).
Bắt đầu nhanh (ghép đôi + kết nối)
- Khởi động Gateway:
- Trong ứng dụng iOS, mở Cài đặt và chọn một gateway đã được phát hiện (hoặc bật Host Thủ công và nhập host/port).
- Phê duyệt yêu cầu ghép đôi trên máy chủ gateway:
requestId mới được tạo. Chạy lại openclaw devices list trước khi phê duyệt.
- Xác minh kết nối:
Đẩy qua relay cho các bản dựng chính thức
Các bản dựng iOS phân phối chính thức sử dụng relay đẩy bên ngoài thay vì công bố token APNs thô cho gateway. Yêu cầu phía Gateway:- Ứng dụng iOS đăng ký với relay bằng App Attest và biên lai ứng dụng.
- Relay trả về một handle relay không rõ ràng cùng với quyền gửi theo phạm vi đăng ký.
- Ứng dụng iOS lấy danh tính gateway đã ghép đôi và bao gồm nó trong đăng ký relay, do đó đăng ký dựa trên relay được ủy quyền cho gateway cụ thể đó.
- Ứng dụng chuyển tiếp đăng ký dựa trên relay đó đến gateway đã ghép đôi với
push.apns.register. - Gateway sử dụng handle relay đã lưu trữ đó cho
push.test, đánh thức nền và đánh thức nhắc nhở. - URL cơ sở relay của gateway phải khớp với URL relay được tích hợp trong bản dựng iOS chính thức/TestFlight.
- Nếu ứng dụng sau đó kết nối với một gateway khác hoặc một bản dựng có URL cơ sở relay khác, nó sẽ làm mới đăng ký relay thay vì sử dụng lại liên kết cũ.
- Không cần token relay trên toàn bộ triển khai.
- Không cần khóa APNs trực tiếp cho các gửi dựa trên relay chính thức/TestFlight.
- Cài đặt bản dựng iOS chính thức/TestFlight.
- Đặt
gateway.push.apns.relay.baseUrltrên gateway. - Ghép đôi ứng dụng với gateway và để nó hoàn tất kết nối.
- Ứng dụng tự động công bố
push.apns.registersau khi có token APNs, phiên hoạt động được kết nối và đăng ký relay thành công. - Sau đó,
push.test, đánh thức lại và đánh thức nhắc nhở có thể sử dụng đăng ký dựa trên relay đã lưu trữ.
OPENCLAW_APNS_RELAY_BASE_URLvẫn hoạt động như một ghi đè tạm thời cho gateway.
Luồng xác thực và tin cậy
Relay tồn tại để thực thi hai ràng buộc mà APNs trực tiếp trên gateway không thể cung cấp cho các bản dựng iOS chính thức:- Chỉ các bản dựng iOS OpenClaw chính hãng phân phối qua Apple mới có thể sử dụng relay được lưu trữ.
- Một gateway chỉ có thể gửi các đẩy dựa trên relay cho các thiết bị iOS đã ghép đôi với gateway cụ thể đó.
-
Ứng dụng iOS -> gateway- Ứng dụng đầu tiên ghép đôi với gateway thông qua luồng xác thực Gateway thông thường.
- Điều đó cung cấp cho ứng dụng một phiên node đã xác thực cùng với một phiên hoạt động đã xác thực.
- Phiên hoạt động được sử dụng để gọi
gateway.identity.get.
-
Ứng dụng iOS -> relay- Ứng dụng gọi các điểm cuối đăng ký relay qua HTTPS.
- Đăng ký bao gồm bằng chứng App Attest cùng với biên lai ứng dụng.
- Relay xác thực ID gói, bằng chứng App Attest và biên lai Apple, và yêu cầu đường dẫn phân phối chính thức/sản xuất.
- Đây là điều ngăn chặn các bản dựng Xcode/dev cục bộ sử dụng relay được lưu trữ. Một bản dựng cục bộ có thể được ký, nhưng nó không đáp ứng bằng chứng phân phối chính thức của Apple mà relay mong đợi.
-
ủy quyền danh tính gateway- Trước khi đăng ký relay, ứng dụng lấy danh tính gateway đã ghép đôi từ
gateway.identity.get. - Ứng dụng bao gồm danh tính gateway đó trong payload đăng ký relay.
- Relay trả về một handle relay và một quyền gửi theo phạm vi đăng ký được ủy quyền cho danh tính gateway đó.
- Trước khi đăng ký relay, ứng dụng lấy danh tính gateway đã ghép đôi từ
-
gateway -> relay- Gateway lưu trữ handle relay và quyền gửi từ
push.apns.register. - Trên
push.test, đánh thức lại và đánh thức nhắc nhở, gateway ký yêu cầu gửi với danh tính thiết bị của chính nó. - Relay xác minh cả quyền gửi đã lưu trữ và chữ ký gateway đối với danh tính gateway được ủy quyền từ đăng ký.
- Một gateway khác không thể sử dụng lại đăng ký đã lưu trữ đó, ngay cả khi nó bằng cách nào đó có được handle.
- Gateway lưu trữ handle relay và quyền gửi từ
-
relay -> APNs- Relay sở hữu thông tin xác thực APNs sản xuất và token APNs thô cho bản dựng chính thức.
- Gateway không bao giờ lưu trữ token APNs thô cho các bản dựng chính thức dựa trên relay.
- Relay gửi đẩy cuối cùng đến APNs thay mặt cho gateway đã ghép đôi.
- Để giữ thông tin xác thực APNs sản xuất ra khỏi các gateway của người dùng.
- Để tránh lưu trữ token APNs thô của bản dựng chính thức trên gateway.
- Để chỉ cho phép sử dụng relay được lưu trữ cho các bản dựng OpenClaw chính thức/TestFlight.
- Để ngăn một gateway gửi đẩy đánh thức đến các thiết bị iOS thuộc sở hữu của một gateway khác.
Đường dẫn phát hiện
Bonjour (LAN)
Gateway quảng bá_openclaw-gw._tcp trên local.. Ứng dụng iOS tự động liệt kê các gateway này.
Tailnet (mạng chéo)
Nếu mDNS bị chặn, sử dụng một vùng DNS-SD unicast (chọn một tên miền; ví dụ:openclaw.internal.) và Tailscale split DNS. Xem Bonjour cho ví dụ CoreDNS.
Host/port thủ công
Trong Cài đặt, bật Host Thủ công và nhập host + port của gateway (mặc định18789).
Canvas + A2UI
Node iOS hiển thị một canvas WKWebView. Sử dụngnode.invoke để điều khiển:
- Máy chủ canvas Gateway phục vụ
/__openclaw__/canvas/và/__openclaw__/a2ui/. - Nó được phục vụ từ máy chủ HTTP của Gateway (cùng cổng với
gateway.port, mặc định18789). - Node iOS tự động điều hướng đến A2UI khi kết nối khi một URL máy chủ canvas được quảng bá.
- Quay lại scaffold tích hợp với
canvas.navigatevà{"url":""}.
Đánh giá canvas / chụp nhanh
Đánh thức bằng giọng nói + chế độ nói
- Đánh thức bằng giọng nói và chế độ nói có sẵn trong Cài đặt.
- iOS có thể tạm dừng âm thanh nền; coi các tính năng giọng nói là nỗ lực tốt nhất khi ứng dụng không hoạt động.
Lỗi thường gặp
NODE_BACKGROUND_UNAVAILABLE: đưa ứng dụng iOS lên nền trước (các lệnh canvas/camera/màn hình yêu cầu điều này).A2UI_HOST_NOT_CONFIGURED: Gateway không quảng bá URL máy chủ canvas; kiểm tracanvasHosttrong Cấu hình Gateway.- Không xuất hiện lời nhắc ghép đôi: chạy
openclaw devices listvà phê duyệt thủ công. - Kết nối lại thất bại sau khi cài đặt lại: token ghép đôi trong Keychain đã bị xóa; ghép đôi lại node.