• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

Geekebrains

Para programadores, maker y geeks en general

  • Inicio
  • Code Brains
  • Zona Makers!
  • Code & Beers
  • GeekeHistorias
  • GeekeBlocks
  • Qué es …?
You are here: Home / Code Brains / Cordova

8 marzo, 2021 Por admin8049

Cordova

Que es Cordova?

Cordova es la plataforma que nos permite programar en JavaScript y mostrar nuestra aplicación en prácticamente cualquier dispositivo (iOS, Android, y mediante Electron en Windows, Ubuntu y Mac) a través de un WebView, pero pudiendo acceder a casi todas las características de este dispositivo a través de plugin.

Cómo funciona Cordova?

Pues basicamente tienes un fichero de configuración y unos comandos de shell, que en base a esa configuración generan el código fuente para que puedas compilarlo con los plugins que tu necesites para poder acceder a elementos del dispositivo.

Al final tienes que compilar el código, así que si vas a hacer la app para android, necesitas Android Studio, y si quieres hacer una App para iPhone, necesitas XCode y un Mac.

Comandos Cordova

# Añadir plataformas para las que quieres generar código 
>cordova platform add android

# Generar código en /platfomrs en base al config.xml
>cordova prepare

# Compila y lanza el emulador de android
cordova run --emulator android

config.xml

<?xml version='1.0' encoding='utf-8'?>
<!-- IMPORTANTE!! 
        El android-versionCode se tiene que cambiar cada vez q se firma en el store
        y no puede ser anterior a uno que ya se haya subido.
-->
<widget 
    id="es.compania.nombre_app"
    version="1.1.0"
    android-versionCode="20"
    ios-CFBundleVersion="1.1.0.0"
    xmlns="http://www.w3.org/ns/widgets" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:cdv="http://cordova.apache.org/ns/1.0"
>
    <name>Nombre App en las Stores</name>
    <description>
        Mi App es la pera
    </description>
    <author email="desarrollo@desarrollador.com" href="https://compania.com">
        Compania
    </author>
    <!-- ATENCIÓN !!!  Ruta inicial del App  -->
    <content src="https://app.compania.es/"/>
    <!-- Rutas a las que puede navegar -->
    <allow-navigation href="*" />
    <icon src="res/icon.png" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <!-- Cosas de Android -->
    <platform name="android">
        <allow-intent href="market:*" />
        <resource-file src="google-services.json" target="app/google-services.json" />
        <preference name="android-minSdkVersion" value="23" />
        <preference name="android-targetSdkVersion" value="30" />
        <splash src="res/screen/android/splash.png" />
        <preference name="Orientation" value="portrait" />
        <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
            <application android:usesCleartextTraffic="true" />
            <application android:allowBackup="false" />
        </edit-config>
    </platform>
    <!-- Cosas de iOS -->
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
        <resource-file src="GoogleService-Info.plist" />
        <preference name="Orientation" value="portrait" />
        <preference name="DisallowOverscroll" value="true" />
        <splash src="res/screen/ios/Default@2x~universal~anyany.png" />
        <hook src="scripts/fixIosIcons.sh" type="after_platform_add" />
        <config-file target="*-Info.plist" parent="UIStatusBarHidden">
            <true/>
        </config-file>
        <config-file target="*-Info.plist" parent="UIViewControllerBasedStatusBarAppearance">
            <false/>
        </config-file>
    </platform>
    <hook src="scripts/fixIosIcons.sh" type="after_prepare" />
    <engine name="android" spec="^9.0.0" />
    <engine name="ios" spec="^6.1.1" />
    <!-- Plugins que vamos a necesitar para acceder al las cosas del dispositivo -->
    <plugin name="cordova-plugin-statusbar" spec="2.4.3" />
    <plugin name="cordova-plugin-androidx" spec="^2.0.0" />
    <plugin name="cordova-plugin-androidx-adapter" spec="^1.1.1" />
    <plugin name="cordova-plugin-appversion" spec="^1.0.0" />
    <plugin name="cordova-plugin-device" spec="^2.0.2" />
    <plugin name="cordova-plugin-whitelist" spec="1" />
    <plugin name="cordova-plugin-ionic-webview">
        <variable name="ANDROID_SUPPORT_ANNOTATIONS_VERSION" value="27.+" />
    </plugin>
    <plugin name="cordova-plugin-ionic-keyboard" spec="2.0.5" />
    <plugin name="cordova-clipboard" spec="~1.3.0" />
    <plugin name="cordova-plugin-fingerprint-aio" spec="^3.0.1">
        <variable name="FACEID_USAGE_DESCRIPTION" value=" " />
    </plugin>
    <plugin name="cordova-plugin-network-information" spec="2.0.2" />
    <plugin name="cordova-plugin-networkinterface" spec="2.0.0" />
    <plugin name="cordova-plugin-iroot" spec="2.0.2" />
    <!-- <plugin name="cordova-plugin-advanced-http" spec="3.0.1" /> -->
    <plugin name="cordova-plugin-advanced-http" spec="./plugin-custom/cordova-plugin-advanced-http-master" />
    <plugin name="cordova-plugin-file" spec="6.0.2" />
    <plugin name="cordova-plugin-proguard" spec="2.2.0" />
    <plugin name="cordova-plugin-buildinfo" spec="4.0.0" />
    <plugin name="cordova-plugin-inappbrowser" spec="4.0.0" />
    <plugin name="@havesource/cordova-plugin-push"  spec="2.0.0"></plugin>
</widget>

Filed Under: Code Brains Tagged With: Cordova, javascript

Previous Post: « Firebase
Next Post: Cómo coger un certificado público de una web y pasarlo a base64 »

Primary Sidebar

Categorías

  • Code & Beers
  • Code Brains
  • Cómo …?
  • Experimentos
  • GeekeBlocks
  • GeekeHistorias
  • Noticias Geek
  • Proyectos
  • Qué es …?
  • Quién es …?
  • Zona Junior!
  • Zona makers!

Etiquetas

Antipatrones de diseño de software Arduino Arquitectura de software base64 Bases de Datos cert Certificados Digitales Clean Code control de acceso DBeaver Diseño de Software docker docker-compose Domain Drive Design Edición de video https IDE Java javascript jest JSON lenguajes de programación Librerías de JavaScript MongoDb MySQL NodeJS NoSQL odoo openssl Oracle package.json Patrones de Diseño de Software pem plugins Postgres Prettier ReactJS seguridad Serverless shell SSL testing TypeScript utilidades de software Visual Studio Code

Entradas recientes

  • CAPTCHA y por qué es importante para la seguridad en línea
  • Cómo mokear una clase que se instancia dentro de otra que necesitas testear y no se pasa por injección?
  • tsconfig paths con Typescript en Serverless
  • Serverless, un framework para todos los proveedores
  • Serverless, otro enfoque de desarrollo
  • Que es currying en Javascript
  • Noticias Junio 2023. Vuelta a la oficina, Million.js, Linux Azure, Apple Vision, Java 21…
  • 23.3 WS:IA-JS Creando un Blog en React con chatGPT.
  • 23.2 IA. Cómo va a afectar a nuestros empleos?
  • 23.1 IA. En que punto estamos y como hemos llegado hasta aquí.
Jesús A. Carballo Santaclara

Empezé trasteando en los 80' con un ZX espectrum, después pasé al potente "PC 8086" (jeje...). He trabajado haciendo software para la administración pública, para Hospitales, el sector de la Automoción, el sector Bancario, en algún e-Commerce de alguna multinacional y he emprendido en robótica educativa y en buscadores web.
Trabajo de forma profesional en esto de los ordenadores desde hace mas de 25 años espero poder contarte alguna cosa interesante.

Footer

Copyright © 2025 · GeekeZonia · Aviso Legal · Política de Cookies · Política de Privacidad · Log in