「webinpectord」(趣味のプロジェクト) を使用して Mobile Safari と通信したいだけです。私の目的は、モバイル Safari で「こんにちは」というアラートを表示することです。Safari のデバッグ コンソールを使用してこれを実行できることはわかっています。現時点で私が知っているのは、Mobile Safari (「webinpectord」) が IPV6 プロトコルを使用してローカルホストのポート 27753 をリッスンすることです。そして、このページから、Mobile Safari との通信シーケンスが理解できました。remote-debug、node-iosdriver、iOS- webkitproxy など、すでに動作しているプログラムを熟読しました。次に、localhost:27753 に接続してコマンドを送受信するプログラムを C で作成しようとしました。私の問題は、ポート 27753 に接続してコマンドを送信できるが、そのポートから応答がないことです。
送ってみた
{ __argument: { WIRConnectionIdentifierKey: '17858421-36EF-4752-89F7-7A13ED5782C5' },
__selector: '_rpc_reportIdentifier:' }
この記事によると、Mobile Safari は次のような応答を返す必要があります。
{ __selector: '_rpc_reportSetup:',
__argument:
{ WIRSimulatorNameKey: 'iPhone Simulator',
WIRSimulatorBuildKey: '10A403' } }
{ __selector: '_rpc_reportConnectedApplicationList:',
__argument:
{ WIRApplicationDictionaryKey:
{ 'com.apple.mobilesafari':
{ WIRApplicationIdentifierKey: 'com.apple.mobilesafari',
WIRApplicationNameKey: 'Safari',
WIRIsApplicationProxyKey: false } } } }
しかし、Mobile Safari からの応答がありません。そこにコマンドを送るだけです。
私のプログラムにバグがあるとしましょう!
そこで、「telnet」で実験してみました。ここでも localhost:27753 に接続でき、コマンドを送信しても応答がありません。スクリーンショットを添付しています。
次のような多くの組み合わせを試したことがわかります
{ "__argument": { "WIRConnectionIdentifierKey": "17858421-36EF-4752-89F7-7A13ED5782C5" }, "__selector": "_rpc_reportIdentifier: " }
{\"__argument\": { \"WIRConnectionIdentifierKey\": \"17858421-36EF-4752-89F7-7A13ED5782C5\" }, \"__selector\": \"_rpc_reportIdentifier: \"}
"{ "__argument": { "WIRConnectionIdentifierKey": "17858421-36EF-4752-89F7-7A13ED5782C5" }, "__selector": "_rpc_reportIdentifier: " }"
しかし、何も機能しませんでした。
最後に、curl でデータを送信してみました。それも失敗しました!
次のような応答を得るにはどうすればよいか教えてもらえますか
{ __selector: '_rpc_reportSetup:',
__argument:
{ WIRSimulatorNameKey: 'iPhone Simulator',
WIRSimulatorBuildKey: '10A403' } }
{ __selector: '_rpc_reportConnectedApplicationList:',
__argument:
{ WIRApplicationDictionaryKey:
{ 'com.apple.mobilesafari':
{ WIRApplicationIdentifierKey: 'com.apple.mobilesafari',
WIRApplicationNameKey: 'Safari',
WIRIsApplicationProxyKey: false } } } }
リクエスト送信時
{ __argument: { WIRConnectionIdentifierKey: '17858421-36EF-4752-89F7-7A13ED5782C5' },
__selector: '_rpc_reportIdentifier:' }
「telnet」または「curl」を使用して localhost:27753 に接続します。
私は 2 日間さまざまな方法で試しました (C プログラム、Python プログラムを作成し、最後に telnet と curl を試しました) が成功しませんでした。だから助けてください!