2013-02-27 4 views
0

Я воспользовался одной проблемой в приложении ios, используя инфраструктуру разрыва телефона. У меня есть webservices url.I нужно получить ответ json от webservices url.I создал какой-то код, но он не работает. и здесь идет мой код ...Телефонный зазор: как получить ответ json от веб-служб URL-адрес

<div data-role="content" data-theme="a" style="background: Black"> 
    <div data-theme="a"> 
     <span style="font-size: x-large; color: Orange;">Secure Log In</span></div> 
    <div data-theme="a"> 
     <div data-theme="a"> 
      <input type="password" placeholder="PASSWORD" id="txtPassword" style="background-color: gray;" /></div> 
    <div data-theme="a" align="right"> 
     <a href="#" data-role="button" onclick="callWebService()" data-corners="false" 
       data-theme="a" id="clcik" cursor="pointer" style="width: 150px; border-radius: 5px 5px 5px 5px" 
       data-clickload="show" data-transition="slidefade"><span style="color: Green">Log In</span> 
      </a> 
     </div> 

функция callWebService() {

  var query = 'Ocean'; 
      var url = 'http://66.171.142.16/Accountservice/Security/ValidateAccess?accesscode=abcd&type=1'; 
      alert(url); 

      $.getJSON(url,function(response){ 
         alert('Here!'); 
         }); 

     }; 

Может кто-нибудь помочь мне с кодом, чтобы получить JSon ответа от URL. Заранее спасибо ...

ответ

0

Я использовал .Net веб-сервис для доступа к веб-сервису. Также я создал плагин для вызова веб-службы .Net. в скрипте Java я использовал метод веб-службы, как описано ниже.

в script.js

$(".CategoryNavbar").click(function(e){ 
        e.preventDefault(); 
         window.plugins.webservice.GetFlights("service",function(r){printResult(r)},function(e){console.log(e)}); 
        return false; 
       }); 


    function printResult(fileInfo){ 


       var innerHtmlText=getHtml(fileInfo); 

        $.mobile.changePage('#CategoryPage',{transition:'slide'}); 

        $('#CategoryPageContent').html(innerHtmlText); 

        $("#CategoryList").listview(); 
        $("#CategoryList").listview('refresh'); 



      } 




    function getHtml(fileInfo){ 
       var htmlText='<ul data-role="listview" id="CategoryList" data-theme="c" data-filter="true" data-filter-placeholder="Search">'; 

       for(var index=0;index<fileInfo.Flights.length;index++){ 
        htmlText=htmlText+'<li> <a href="">'+ fileInfo.Flights[index] +'</a></li>'; 
        } 

       htmlText=htmlText+"</ul>"; 
       return htmlText; 

       } 

в файл плагина /** * Конструктор */ функция WebService() {}

/** * @ param methodn Имя метода, для которого мы хотим webService * @param successCallback Обратный вызов, который будет вызывается, когда список каталогов успешно * @param failureCallback функция обратного вызова, которая будет вызываться, когда список каталогов encouters ошибку */

WebService.prototype.GetFlights = function(args, successCallback, 
     failureCallback) { 
    return cordova.exec(successCallback, failureCallback, 'WebService', 
      'GetFlights', [ args ]); 
}; 

if (!window.plugins) { 
    window.plugins = {}; 
} 
if (!window.plugins.webservice) { 
    window.plugins.webservice = new WebService(); 
} 
+0

Привет, я попросил фреймворк в приложении ios, но не для приложения для Android, вы можете проверить мой код один раз ... –

+0

PhoneGAp Generic может также выполнять IOS и Android. Я показал полные действия для плагина –

+0

Теперь приложение имеет только связанные с PhoneGap вещи. PhoneGap - это crosspaltform. Функция getHtml использует для получения содержимого от Json. –

0

Привет Sudheer пожалуйста, проверьте код, приведенный ниже, чтобы получить ответ от веб-сервиса с использованием Ksoap

public class AndroidWebService extends Activity { 

private final String NAMESPACE = "http://www.webserviceX.NET/"; 
private final String URL = "http://www.webservicex.net/ConvertWeight.asmx"; 
private final String SOAP_ACTION = "http://www.webserviceX.NET/ConvertWeight"; 
private final String METHOD_NAME = "ConvertWeight"; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

    String weight = "3700"; 
    String fromUnit = "Grams"; 
    String toUnit = "Kilograms"; 

    PropertyInfo weightProp =new PropertyInfo(); 
    weightProp.setName("Weight"); 
    weightProp.setValue(weight); 
    weightProp.setType(double.class); 
    request.addProperty(weightProp); 

    PropertyInfo fromProp =new PropertyInfo(); 
    fromProp.setName("FromUnit"); 
    fromProp.setValue(fromUnit); 
    fromProp.setType(String.class); 
    request.addProperty(fromProp); 

    PropertyInfo toProp =new PropertyInfo(); 
    toProp.setName("ToUnit"); 
    toProp.setValue(toUnit); 
    toProp.setType(String.class); 
    request.addProperty(toProp); 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.dotNet = true; 
    envelope.setOutputSoapObject(request); 
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 

    try { 
     androidHttpTransport.call(SOAP_ACTION, envelope); 
     SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); 
     Log.i("myApp", response.toString()); 

     TextView tv = new TextView(this); 
     tv.setText(weight+" "+fromUnit+" equal "+response.toString()+ " "+toUnit); 
     setContentView(tv); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
     } 
    } 

А вот пример кода для получения ответа, используя JSON в JQuery мобильного проверить код ниже

$.ajax({ 
    cache: false, 
    url: wcfServiceUrl + "Authenticate?CompanyID=" + escape(comp) + "&UserName=" + user + "&Password=" + escape(pass) + "&Auth=" + ipaddress+"", 
    data: "{}", 
    type: "GET", 
    contentType: "application/javascript", 
    dataType: "jsonp", 
    beforeSend: function (XMLHttpRequest) { 
     $.mobile.loadingMessageTextVisible = true; 
     $.mobile.loadingMessage = "Loading Please Wait"; 
     $.mobile.showPageLoadingMsg(); 
    }, 
    complete: function (XMLHttpRequest, textStatus) { 
     $.mobile.hidePageLoadingMsg(); 
    }, 
    error: function (xmlHttpRequest, status, err) { 
       $.mobile.loadingMessageTextVisible = true; 
       $.mobile.loadingMessage = "Web service is not responding. Try again"; 
       $.mobile.showPageLoadingMsg(); 
       var wait = setTimeout(function(){ 
        $.mobile.hidePageLoadingMsg(); 
       },400); 
    }, 
    error: function() { 
     jAlert("list failed!",alertmessage); 
    }, 
    success: function (list) { 
     var rar = list.split(";"); 
     if(rar[0]=="Error") 
     { 
      jAlert(rar[1],alertmessage); 
     } 
     else if(rar[0]=="Success") 
     { 
      localStorage.setItem("CompanyID", comp); 
      localStorage.setItem("Username", user); 
      localStorage.setItem("UserID", rar[1]); 
      $.mobile.changePage('#home', { transition: "pop", reverse: false }); 
     } 
     else if(rar[0]=="FirstLogin") 
     { 
      localStorage.setItem("CompanyID", comp); 
      localStorage.setItem("Username", user); 
      localStorage.setItem("UserID", rar[1]); 
      $.mobile.changePage('#change-pass', { transition: "slide", reverse: false }); 
     } 
    } 
}); 
+0

Привет, я попросил приложение ios не для приложения для Android. вы могли бы проверить его один раз ... –

+0

Привет, вы используете HTML 5 и phonegap для создания приложения Iphone, проверьте эту ссылку, если какая-либо полезная информация для вас ** [Нажмите здесь] (http://kmithi.wordpress.com/2012/02/26/8 /) ** – androidgeek

+0

НЕТ, просто использую html и телефонный разрыв 1.9.0. На самом деле я применил ссылку, но мой идентификатор потребности отличается от этого примера. –

Смежные вопросы