Creación de proyectos en cordova
Ponemos una serie de configuraciones básicas a la hora de crea tu proyecto cordova para que la experiencia no sea demasiado traumática.
Conexión con webservices en distintos servidores
En el caso que nos ocupa (conexión con APP), esto tiene implicaciones en los 2 lados de la conexión:
APP
Es necesario decir a la APP que necesita poder acceder a los webservices alojados en un servidor dado. Para ello tenemos que actuar en 2 ficheros:
* Index.html: Debemos indicar, dentro del meta donde se encuentran las políticas de seguridad lo siguiente
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval' 'unsafe-inline'; media-src *; connect-src 'self' http://localhost http://xxx.merkatu.info http://www.xxx.com">
En este caso tendremos para cada web de la que queramos tirar (desarrollo, pruebas o producción) su url indicada en la sección connect-src 'self' del meta.
* config.xml: Debemos añadir la siguiente etiqueta
<access origin="*" />
Webservice (fichero .php)
En el fichero php también debemos definir los servidores desde los que vamos a permitir el acceso para ejecutar los webservices.
En el caso de APP como son los móviles de los usuarios aceptamos todos los orígenes. Si el acceso se hiciera desde una web sería suficiente con permitir el acceso desde esa url, con lo que ganamos en seguridad.
Añadimos las siguientes lineas al principio del fichero.
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: origin, x-requested-with, content-type, accept, authorization");