1

「webinpectord」(趣味のプロジェクト) を使用して Mobile Safari と通信したいだけです。私の目的は、モバイル Safari で「こんにちは」というアラートを表示することです。Safari のデバッグ コンソールを使用してこれを実行できることはわかっています。現時点で私が知っているのは、Mobile Safari (「webinpectord」) が IPV6 プロトコルを使用してローカルホストのポート 27753 をリッスンすることです。そして、このページから、Mobile Safari との通信シーケンスが理解できました。remote-debugnode-iosdriveriOS- 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 を試しました) が成功しませんでした。だから助けてください!

4

1 に答える 1