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

Geekebrains

Para programadores, maker y geeks en general

  • Inicio
  • Zona Coders!
  • Zona Makers!
You are here: Home / Zona Coders! / Cordova

8 marzo, 2021 Por admin8049 Leave a Comment

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: Zona Coders! Tagged With: Cordova, javascript

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

Reader Interactions

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Primary Sidebar

Categorías

  • Cómo …?
  • Experimentos
  • GeekeBlocks
  • Noticias Geek
  • Proyectos
  • Qué es …?
  • Quién es …?
  • Zona Coders!
  • Zona Junior!
  • Zona makers!

Etiquetas

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

Entradas recientes

  • Lenguaje ubicuo en Domain-Driven Design (DDD)
  • NestJs
  • Docker-compose y mongoDB: Failed to start up WiredTiger under any compatibility version?
  • Ponerle nombre a las cosas: camelCase, snake_case, kebab-case, PascalCase, MACRO_CASE y Train_Case
  • OBS – Open Broadcaster Software
  • Duck typing
  • Patrón de arquitectura: Backend for Frontend – BFF
  • SaaS, PaaS y IaaS
  • Notion
  • GitHub Actions
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 © 2023 · GeekeZonia · Aviso Legal · Política de Cookies · Política de Privacidad · Log in