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