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 数据时,它会点击定价 AppWebService_faultHandler,此时设备会显示一个确定/取消弹出框,其中我的机器的本地 IP 显示在输入文本中。

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 文件。

这个问题似乎引发了某种安全问题——我认为弹出框就是这样。然而,这只是推测,但我的服务器在单击“确定”并按下手机后退按钮尝试重新加载数据后注意到响应。

4

1 回答 1

0

请务必注意,在使用我的内部 wifi 连接进行测试时不会发生这种情况,因为与测试计算机的连接可用(这是框中的 IP)。为避免此问题,请改用 ipa 的发行版。否则不要担心它不会在最终发布版本中显示。

Project --> Export Release Build 
于 2012-08-20T09:11:06.080 回答