0

ネイティブ アプリの場合に Ajax リクエストを phonegap プラグインに委任するために、XMLHTTPRequest の動作をオーバーライドしようとしています (https 証明書認証チャレンジを処理します)。

アプリケーションがネイティブ コンテナで実行されている場合、

  • 現在の HTTP 呼び出しをキャンセル
  • HTTP 呼び出しを実行するために phonegap プラグインを呼び出します
  • HTTP レスポンスを受信する
  • http 応答要素を使用して、現在の XMLHttpRequest インスタンスでイベントをトリガーします

私のアプリは、同じソース コードを使用して、ネイティブの Web コンテキストで実行する必要があります。開発者は Ajax 呼び出しをシームレスに行うことができます。

これが私がやろうとしていることのサンプルコードです:

XMLHttpRequest.prototype.send = function() {
    var me = this;
    me.abort();
    cordova.exec(function(httpresult) {             
        // Query success
        // httpresult object contains http response headers and content
        // How can onreadystatechange be triggered ???
        me.onreadystatechange(httpresult);
    }, function(httpresult) {
        // Query failure
    }, "QueryPlugin", "query", [{
        url: me.url,
        method: me.method,
        data: me.data
        // other http query params
    }]);
}

http ヘッダーとコンテンツを現在の XMLHttpRequest インスタンスに適切に渡す方法と、onreadystatechange メソッドをトリガーする方法がわかりません。

前もって感謝します、

4

1 に答える 1

1

Cordova/phonegap は、追加機能を提供する一部のプラットフォーム用に XMLHttpRequest オブジェクトをすぐに再定義します。たとえば、Windows Phone の場合、次のようにします。

https://github.com/apache/incubator-cordova-js/blob/master/lib/wp7/plugin/wp7/XHRPatch.js

おそらく、同じ方法で何かをしたり、プラットフォームの既存の実装を拡張したりしたいと思うでしょう。

于 2012-10-12T19:29:30.487 に答える