初学者 - 使用Android SDK eclipse进行简单的AJAX Web服务调用

时间:2013-01-11 22:54:38

标签: android ajax eclipse web-services

我是学习Android应用开发的初学者。这是我的问题

我正在使用与Android SDK一起提供的eclipse来开发应用程序。要通过网络启用我已使用phonegap构建教程的应用程序来添加cordova API。现在我能够看到html文件,如果我只使用普通的HTML控件或文本。但我有一个代码从另一个WebSphere服务器调用Web服务并显示数据。当我在IIS服务器中运行代码(使用DreanWeaver IDE)时,它完美地运行。但是,当我尝试在模拟器中运行此应用程序(从Android SDK)时,我看不到来自Web服务的任何输出。我甚至看不到从Android应用程序到我的webspehere服务器的调用(当我在Dreamweaver中将此代码作为网页运行时,我可以看到)。这是我的index.html代码。我已经将ws.js和prototype.js包含在assets / www / scripts /中,如果有人想知道的话。有人可以帮我解决这个问题。

    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
    <meta charset="utf-8">

    <script type="text/javascript" src="scripts/prototype.js"></script>
    <script type="text/javascript" src="scripts/ws.js"></script>
    <script type="text/javascript">

    function onBodyLoad(name, container)
    {
        console.log("Here1"); 
        var call = new WS.Call('http://localhost:9080/ILM/services/ILMReports'); 
        var nsuri = '';
        var qn_op = new WS.QName('getInboundSearchByItemReport',nsuri);
        var qn_op_resp = new WS.QName('getInboundSearchByItemReportResponse',nsuri);  

        call.invoke_rpc(
        qn_op,
        new Array(
        {name:'name',value:name}
        ),null,
        function(call,envelope) {
            var ret = 
            envelope.get_body().get_all_children()[0].
              get_all_children()[0].get_value();
            container.innerHTML = ret;
            }
        );

        /*window.location = "TestingAJAXWS.html";*/
    }

    function onDeviceReady()
    {
        // do your thing!
        navigator.notification.alert("PhoneGap is working")
    }

    </script>
</head>
<body onload="onBodyLoad('aaa',$('result'))">
<h1>Hey, it's PhoneGap!</h1>
</body>

1 个答案:

答案 0 :(得分:0)

我能看到的问题是您用来访问Web服务的本地主机地址。

不知何故,android模拟器不允许使用localhost地址,因为模拟器不知道。 (如果你知道原因请写)

这是一个老线程。但我希望它能帮助别人。 / T