CrossDomain en Phonegap

Si su aplicación PhoneGap necesita realizar llamadas a un servidor externo a su dispositivo es necesario añadir el crossdomain en PhoneGap. Todo es tan rápido y sencillo como añadir al fichero config.xml que se encuentra en xml/config.xml la siguiente linea.

<cordova>
         .....
         <access origin="http://127.0.0.1*"/> <!-- paginas locales -->
	     <access origin="http://www.servidorexterno.com/" subdomains="true"/>
         .....
         <plugins>
            .....
            .....
            .....
         </plugins>
</cordova>

Una vez añadida la posibilidad de hacer crossdomain en PhoneGap tan solo tenemos que añadir el script necesario para realizarlo.


function validarversion(){
       $.ajaxSetup({
              'beforeSend':function(xhr){
                   try{
                       xhr.overrideMimeType('text/html; charset=UTF-8');
                   }catch(e){}
              },
              scriptCharset:"UTF-8"
        });
        $.ajax({
              url:'http://www.servidorexterno.com/ep-inf/status.php',
              type:"POST",
              responseType:'text/plain;charset=UTF-8',
              data:{version:'090'},
              contentType:'application/x-www-form-urlencoded;charset=UTF-8',
              dataType:'json',
              success:function(data){
                        if(data != null){
                              lastVersion=data.lastVersion;
                              if(lastVersion!='090'){
                                  navigator.notification.confirm(data.uMessage, onConfirmUpdate, "Actualización disponible", "Cerrar,Actualizar");
                              }else if(data.statusMesage!=''){
                                  navigator.notification.alert(data.sMesage, null, "Estado de la aplicación", "Cerrar");
                              }else if(data.other!=''){
                                  navigator.notification.alert(data.ot, null, "Información", "Cerrar");
                              }
                         }
           }
      });
}

Desde el Activity de Android podemos usar el siguiente código


     @Override
     public void onCreate(Bundle savedInstanceState) {

          super.onCreate(savedInstanceState);
	      super.setIntegerProperty("loadUrlTimeoutValue", 10000);
	      super.setStringProperty("loadingDialog", "Cargando InfoBolsa CED....");
	      super.loadUrl("http://www.servidorexterno.com/ep-inf/status.html");

     }

Anuncios

4 comentarios

  1. Wow! utilísimo y en el momento oportuno

  2. necesito consumir un Json Restful desde phonegap lo que hago es guardar en una variable lo que me deberia de retronar el script ja = $.ajax({
    url: strWebService,
    type:”POST”, etc.

    pero no me devuelve el json sino me devuelve esto

    Object {readyState: 1, setRequestHeader: function, getAllResponseHeaders: function, getResponseHeader: function, overrideMimeType: function…}

    me podrian ayudar

    1. No tienes que igualar la peticion ajax a una variable, sino tratar la respuesta en la funcion correspondiente. En el ejemplo de arriba:

      success:function(data){
      respuesta = data;
      }

  3. Le has puesto el dataType:’json’

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: