0

私はモバイル プロジェクト (Titanium Studio を使用) で作業していますが、以下の状況にあります。

1) 私のモバイルアプリは Rails バックエンドに連絡して、ユーザー ID の有効性を確認するなど、いくつかのデータを確認します。

2) モバイル アプリで Web ページを読み込む方法を見つけました。つまり、WebView

3) 目的の URL を読み込むことができました。たとえば、次のhttp://www.mydomain.com/checkuser?uid=20121 ようなデータが返されます。status:success

しかし、サーバーからの応答が成功か失敗かを示すためにこのデータを読み取る必要があります。どうすればこれを達成できますか?

注:上記のシナリオはユースケースですが、実際にはサードパーティの URL をロードし、WebViewユーザーがデータを入力して送信すると、結果が私の Web サイトの URL にポストされます。

編集:したがって、プロセスは以下のようになります

1)次のようなサードパーティの URL がロードされた WebViewhttp://www.anyapiprovider.com/processdata

2) ユーザーはこの Web ページに一連のデータを入力し、ページを送信します。

3) 送信されたデータは apiprovider によって処理され、Web ページにデータが返されます。http://www.mydomain.com/recievedata

これが、 FYIGETを使用して直接使用していない理由です。いくつかの記事で示唆されているように、実際の Web ページから直接 Ti.APP イベントを起動しようとしましたが、ほとんどの記事では、ロードされたファイルがローカルにあり、リモートファイルではありません。参照リンクHTTPClient

私のアプローチを改善する必要がある場合は、私に提案してください。

ありがとう

4

3 に答える 3

2

Josiah のアドバイスに従いたくない場合は、Titanium のドキュメントを参照して、webview.addEventListener('load',...イベント リスナーを追加しwebview.evalJS()、独自のコードをサード パーティの HTML に挿入する方法を確認してください。

コードを挿入して送信イベントをトラップし、Ti イベントを起動して、Web サイトからのデータのダウンロードをトリガーすることができます。

WebView と Titanium 間の通信 - リモート Web コンテンツ セクション

于 2012-10-17T08:36:16.067 に答える
0

WebView にロードする代わりに、HTTP クライアントを使用して取得しないのはなぜですか? これはよりクリーンで、より標準に基づいています。

var xhr_get = Ti.Network.createHTTPClient({
    onload : function(e) {
        // Here is your "status:success" string
        var returnValue = this.responseText;
    },
    onerror : function(e) {
        Ti.API.info(this.responseText);
        Ti.API.info('CheckUserProgressOnActivity webservice failed with message : ' + e.error);
    }
});
xhr_get.open('GET', 'http://www.mydomain.com/checkuser?uid=20121');
xhr_get.send();
于 2012-10-16T02:26:48.100 に答える