0

Flash Builder と Flex を使用して、iOS と Android の両方に展開するモバイル アプリケーションを開発しています。すべてが Flash Builder エミュレーターで動作しているので、物理デバイスでテストを開始したいところです。

アプリが読み込まれ、最初のビューが表示されると、次のコードが実行されます。

creationComplete="initApp(event)

protected function initApp(event:FlexEvent):void
{               
    pricingAppWebService1.updateApp("RAMISAppUpdate");                          
}   

私の問題は、Web サービス (以下に示す) を使用してサーバーからアプリに xml データを読み込もうとすると、エラーが発生することです。Flash Builder エミュレーターで動作するため、これは奇妙です。

<fx:Declarations>
    <s:WebService id="pricingAppWebService" 
        wsdl="http://dev.ramislive.com/webservice/pricing.asmx?WSDL"
        result="dataSent_resultHandler(event)"
        fault="dataSent_faultHandler(event)" />    
</fx:Declarations>

アプリが xml データを取得しようとすると、pricingAppWebService_faultHandler にヒットし、その時点で、デバイスは入力テキストに表示された自分のマシンのローカル IP を含む [OK/キャンセル] ポップアップ ボックスを表示します。

protected function pricingAppWebService_faultHandler(event:FaultEvent):void
{
    trace(event.fault);
    navigator.pushView(MainMenu);           
}   

トレースは、Flash Builder コンソールに次の情報を提供します。

[ RPC Fault faultString="HTTP request error" faultCode="Server.Error.Request"
    faultDetail="Unable to load WSDL. 
    If currently online, please verify the URI and/or format of the WSDL    
    (http://dev.ramislive.com/webservice/pricing.asmx?WSDL)" ]

当然端末側のセキュリティ設定を考えたところ、src/Main-App.xml内のandroidマニフェストファイルに以下が存在します。

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

注意として、私はこの質問を見てきましたが、私の問題の解決策は非常に似ている可能性があります. ただし、ドメインを IP アドレスに置き換えようとしましたが、成功しませんでした。この質問があいまいすぎる場合はお詫びします。このサイトでの私の最初の質問です。mxml ファイル全体をできるだけ詳細に説明するように努めました。

この問題は、ある種のセキュリティ上の問題を引き起こしているようです - これがポップアップ ボックスであると私は推測しています。ただし、これは憶測にすぎませんが、[OK] をクリックし、電話の [戻る] ボタンを押してデータの再読み込みを試みると、サーバーが応答に気付きます。

4

1 に答える 1

0

内部 Wi-Fi 接続を使用してテストする場合、テスト コンピューターへの接続が利用可能であるため、これは発生しないことに注意することが重要です (これはボックス内の IP です)。この問題を回避するには、代わりにリリース バージョンの ipa を使用してください。それ以外の場合は、最終リリース ビルドに表示されないので心配しないでください。

Project --> Export Release Build 
于 2012-08-20T09:11:06.080 に答える