iOS AppをNodeとして連携させる
モバイルデバイスが持つ強力なセンサーやカメラ機能を、開発中のシステムと手軽に連携させたいと考えたことはありませんか。しかし、実機をネットワーク経由で認識させ、セキュアにコマンドを送信するための環境構築は、意外と手間がかかるものです。
現在内部プレビュー版として公開されているiOS Appを使用すると、iPhoneやiPadを一つのNodeとしてGatewayに接続できます。これにより、Canvasの操作やスクリーンショットの取得、音声対話モードなどを外部から制御できるようになります。
セットアップを始める前に、以下の準備ができているか確認してください。
- Gateway: macOS、Linux、またはWindows(WSL2)で動作しているGateway
- ネットワーク経路: 以下のいずれかの方法で接続できること
- Bonjourを利用した同一LAN内
- Tailnet(Tailscale)経由のユニキャスト DNS-SD
- 手動設定(ホスト名とポート指定)
クイックスタート
Section titled “クイックスタート”わずか5分で、iOSデバイスをNodeとしてペアリングし、接続を確立できます。
1. Gatewayの起動
Section titled “1. Gatewayの起動”まず、ホストマシンでGatewayを起動します。
openclaw gateway --port 187892. iOS Appでの設定
Section titled “2. iOS Appでの設定”iOS Appを開き、Settings(設定)画面へ進みます。検出されたGatewayを選択するか、「Manual Host」を有効にしてホスト名とポートを入力してください。
3. ペアリングの承認
Section titled “3. ペアリングの承認”Gateway側でペアリング要求を承認する必要があります。
openclaw nodes pendingopenclaw nodes approve \<requestId\>4. 接続の確認
Section titled “4. 接続の確認”正しく接続されたか、以下のコマンドでステータスを確認します。
openclaw nodes statusopenclaw gateway call node.list --params "{}"Discovery Paths(接続経路)
Section titled “Discovery Paths(接続経路)”iOS Appは、以下の3つの方法でGatewayを見つけ出します。
- Bonjour (LAN): Gatewayは
_openclaw-gw._tcpをlocal.ドメインで通知します。Appはこれらを自動的にリストアップします。 - Tailnet: mDNSがブロックされている環境では、ユニキャスト DNS-SD ゾーン(例:
openclaw.internal.)と Tailscale の Split DNS を使用します。 - Manual host/port: 設定画面で Manual Host を有効にし、Gatewayのホスト名とポート(デフォルトは
18789)を直接入力します。
Canvas + A2UI
Section titled “Canvas + A2UI”iOS Nodeは WKWebView を利用した Canvas を描画できます。node.invoke を使って操作が可能です。
openclaw nodes invoke --node "iOS Node" --command canvas.navigate --params '{"url":"http://\<gateway-host\>:18793/__openclaw__/canvas/"}'接続時に Canvas Host の URL が通知されている場合、Nodeは自動的に A2UI へ遷移します。標準の状態に戻すには、canvas.navigate で空の URL ({ "url": "" }) を指定してください。
Canvasの操作例
Section titled “Canvasの操作例”JavaScriptの実行やスクリーンショットの取得も簡単です。
# JavaScriptの実行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"}'Voice Wake + Talk Mode
Section titled “Voice Wake + Talk Mode”設定画面から Voice Wake(音声起動)や Talk Mode を有効にできます。 ただし、iOSの仕様によりバックグラウンドでのオーディオ実行が制限される場合があります。Appがアクティブでない状態では、これらの音声機能はベストエフォートでの動作となる点に注意してください。
トラブルシューティング
Section titled “トラブルシューティング”よくある問題と解決策をまとめました。
NODE_BACKGROUND_UNAVAILABLE: iOS Appをフォアグラウンド(最前面)に表示してください。Canvas、カメラ、スクリーンショットのコマンド実行には、Appがアクティブである必要があります。A2UI_HOST_NOT_CONFIGURED: Gatewayが Canvas Host の URL を通知していません。Gateway設定のcanvasHostを確認してください。- ペアリングのプロンプトが表示されない:
openclaw nodes pendingを実行し、手動で承認を行ってください。 - 再インストール後に再接続できない: Keychain内のペアリングトークンが消去されています。再度ペアリングの手順を行ってください。
疑問点がある場合は、AI Setup Assistant も活用してください。
次のステップ
Section titled “次のステップ”OpenClaw Expert
まだ解決しませんか?
このページで解決しない場合は、OpenClaw Expertに直接質問してください。