Quand on développe une application mobile, il est conseillé d’afficher quelque part son numéro de version.
Cela peut servir à dépanner un utilisateur en lui demandant la version qu’il utilise mais également à l’utilisateur de savoir s’il a bien la dernière version par exemple.
Alors dans une application mobile hybride qui utilise Cordova, comment afficher ce numéro de version ?
Un plugin bien utile :
“Il y a un plugin pour tout”, et dans ce cas, c’est également vrai !
Le plugin s’appelle “Cordova AppVersion” et est disponible ici : https://github.com/whiteoctober/cordova-plugin-app-version/tree/master
Installation :
Pour l’installation, rien de bien compliqué, il suffit d’utiliser votre commande habituelle pour installer un plugin Cordova :
cordova plugin add https://github.com/whiteoctober/cordova-plugin-app-version.git
Utilisation :
Et l’utilisation est toute aussi simple.
Si vous utilisez JQuery :
if (window.cordova) { cordova.getAppVersion().then(function(version) { $('.version').text(version); }); }
Et si vous utilisez AngularJs par exemple :
if (window.cordova) { cordova.getAppVersion(function(version) { $scope.version = version; }); }
Mais comment ce plugin va chercher la version de votre application ?
Et bien il va lire l’information dans les fichiers de paramétrage de votre application.
Par exemple si vous utilisez ‘Grunt’, cette information est renseignée dans le paramétrage cordova :
"cordova": { "dist": "cordova", "id": "com.lalloue.geoffrey", "name": "App test", "version": "0.1.0", "versionCode": "1", ...
(si vous ne connaissez pas ‘Grunt’ je vous invite à lire cet article : http://lalloue.fr/blog/grunt-installation-et-utilisation/).
Par défaut, dans une application Cordova, le numéro de version se trouve dans le fichier ‘config.xml’ :
<widget id="com.example.hello" version="0.0.1"> <name>HelloWorld</name> <description> Description de l'app Cordova </description> <author email="dev@callback.apache.org" href="http://phonegap.com"> Apache Cordova Team </author> <content src="index.html" /> <access origin="*" /> </widget>