Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


PhoneGap Android obtiene el código de la versión de la aplicación

Estoy construyendo una aplicación androide phonegap con jQueryMobile.

Quiero crear una función que compruebe el código de versión de la aplicación con un servicio web para sugerir la actualización, si la aplicación está obsoleta, solicitando a la tienda de Google Play.

De mis búsquedas, parece que PhoneGap no tiene un método para encontrar el código de versión .

Hay una manera de hacerlo:

  • Sin escribir nada en las clases Java?
  • Sin guardar manualmente una variable actualizada cada vez que empujo una nueva versión?

O, si escribir en las clases es esencial, ¿cómo lo llamo desde PhoneGap?

EDIT: He editado la respuesta aceptada con una solución de trabajo! Espero que todos puedan beneficiarse de ella.

EDITAR (2): y aquí está el repo completo del complemento con instrucciones, no dude en bifurcarlo 🙂 https://github.com/gcatalfamo/Version

  • Versión para Android de IntelliJ sdk
  • ¿Cómo recuperar la versión sdk de Android?
  • ¿Incluyendo la versión webkit utilizada en el navegador Android?
  • Distribución histórica de las versiones de la plataforma Android
  • Cómo obtener la versión SDK de Android de un dispositivo desde la línea de comandos
  • Plugin de Gradle de Android-Herramientas
  • Cómo utilizar una función sólo si la versión es 11+
  • ¿Cómo puedo comprobar la versión del sistema de Android?
  • 2 Solutions collect form web for “PhoneGap Android obtiene el código de la versión de la aplicación”

    Sé que usted pidió w / o escribir clases Java, pero de una manera u otra que necesita para escribir una. Necesitas escribir PhoneGap Plugin como dijo Andre.

    Cree un PhoneGap plugin personalizado de PhoneGap plugin :

    Crea una nueva clase en el paquete de tu aplicación:

     package com.phonegap.plugins; //your package name import org.json.JSONArray; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import org.apache.cordova.api.Plugin; import org.apache.cordova.api.PluginResult; import org.apache.cordova.api.PluginResult.Status; public class Version extends Plugin { public final String ACTION_GET_VERSION_NAME = "GetVersionName"; //not used in this version public final String ACTION_GET_VERSION_CODE = "GetVersionCode"; @Override public PluginResult execute(String action, JSONArray args, String callbackId) { PluginResult result = new PluginResult(Status.INVALID_ACTION); PackageManager packageManager = this.cordova.getActivity().getPackageManager(); if(action.equals(ACTION_GET_VERSION_CODE)) { try { PackageInfo packageInfo = packageManager.getPackageInfo(this.cordova.getContext().getPackageName(), 0); result = new PluginResult(Status.OK, packageInfo.versionCode); } catch (NameNotFoundException nnfe) { result = new PluginResult(Status.ERROR, nnfe.getMessage()); } } return result; } } 

    En el archivo plugins.xml, agregue la siguiente línea:

     <plugin name="Version" value="your.package.Version" /> 

    En su evento deviceready , agregue el código siguiente:

     var Version = function() {}; Version.prototype.getVersionCode = function(successCallback, failureCallback) { return cordova.exec(successCallback, failureCallback, 'Version', 'GetVersionCode', []); }; if(!window.plugins) { window.plugins = {}; } if (!window.plugins.version) { window.plugins.version = new Version(); } 

    A continuación, puede obtener el atributo versionCode haciendo:

     window.plugins.packageManager.getVersionCode( function(versionCode) { //do something with versionCode }, function(errorMessage) { //do something with errorMessage } ); 

    Un pequeño cambio requerido .. la clase debe extender " extiende CordovaPlugin "

    Entonces " this.cordova.getActivity (). GetPackageName () " funcionará.

    En el archivo plugins.xml, agregue la siguiente línea:

    PERO para Cardova> 2.0, usted necesita agregar en config.xml dentro de la carpeta xml

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.