Cordova. Démarrage rapide

Il n'y a pas si longtemps, j'ai dû découvrir une nouvelle page informatique - développer des applications mobiles pour Android à l'aide de la plate-forme Cordova. J'aimerais présenter l'expérience acquise dans un format qui, idéalement, me faciliterait l'accès à cette plateforme, si cela m'avait pris à ce moment-là. Les documents disponibles sur Internet, y compris sur le site Web de Cordova lui-même, ne résolvent pas ce problème de manière idéale. Il est difficile de dire si cela doit être attribué aux difficultés de perception personnelle ou à la qualité des matériaux. Par conséquent, le matériel ne prétend pas être académique, mais il peut être utile si quelqu'un a des problèmes similaires. Dans tous les cas, les commentaires de fond sont les bienvenus.





Qu'est-ce que Cordova et pourquoi est-il nécessaire

En bref, il s'agit d'un framework open source qui vous permet d'écrire une application multiplateforme en JavaScript, et toutes les couches ci-dessous sont conçues pour assurer l'assemblage de ce code dans une application pour la plateforme cible, que ce soit Android, iOS, Windows, une application navigateur, ou même une plateforme exotique comme Tizen. Dans ce cas particulier, seuls les scénarios Android et navigateur seront pris en compte.





Plus de détails sur «ce que c'est et pourquoi il est nécessaire» sont bien mieux décrits sur le site Web du projet, et plus particulièrement ici .





Pour l'instant, nous allons simplement ajouter une image de la source mentionnée:





Installation de Cordova sous Windows

L'installation du framework est assez simple. Node.js doit être installé sur le PC. Il vit sur le site https://nodejs.org/en/ , et ne nécessite aucune compétence pour l'installation, à l'exception de la possibilité de cliquer sur la souris.





Node.js Windows npm. Cordova :





npm install -g cordova







, Cordova .





, . Cordova . , , . , Android Android SDK Gradle. , .





- .





, , :





cordova create test_prj







test_prj, . :





cd test_prj







:





cordova platform add browser







cordova platform add android







platforms browser android, .





, :





cordova build







:





cordova run browser







. :





cordova run android







Android- , USB.





, :





, , , . , . , , . , - www , index.html js/index.js .





index.html , , , .





js/index.js , :





document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
   console.log('Running cordova-' + cordova.platformId + '@' + cordova.version);
   document.getElementById('deviceready').classList.add('ready');
}
      
      



:





  1. , - , . .





  2. , , "DeviceReady". , .





. - "Device is ready". HTML-, onClick. onDeviceReady(). , , :





document.getElementById('deviceready').addEventListener('click',deviceReadyClicked);
      
      



, :





function deviceReadyClicked() {
   alert('deviceReady clicked');
}
      
      



:





, . . index.html :





<button id="testButton">TEST</button>
      
      



'click'. onDeviceReady() :





document.getElementById('testButton').addEventListener('click',testButtonClicked);
      
      



:





function testButtonClicked() {
  console.log("test button clicked");
  alert('button clicked');
}
      
      



console.log , , :





:





, : Google Chrome :





chrome://inspect/#devices







, /:





- . "inspect" - . , . , . , .





, . , , , JavaScript - , , .





Cordova ?

Cordova - - , "" JavaScript. , "" JavaScript - .





, , . , openFile(), writeFile(), readFile(). JavaScript-, , .





?

" "? , , , . , , . , .





plugman, :





npm install -g plugman







, , :





plugman create --plugin_id "test.mytest" --name cordova-test-mytest --plugin_version 0.1.0







cordova-test-mytest ( , name). :





  1. www/cordova-test-mytest.js - , . coolMethod().





  2. plugin.xml, :





<name>cordova-test-mytest</name>
      
      



JS:





<js-module name="cordova-test-mytest" src="www/cordova-test-mytest.js">
  <clobbers target="cordova.plugins.cordova-test-mytest" />
</js-module>
      
      



clobbers , . coolMethod() :





cordova.plugins.cordova-test-mytest.coolMethod();
      
      



, , .





: -, , - - . Android - . :





plugman platform add --platform_name android







:





  1. plugin.xml , XML , . , , .





  2. , XML platform:





<platform name="android">
	<config-file parent="/" target="res/xml/config.xml">
		<feature name="cordova-test-mytest">
			<param name="android-package" value="test.mytest.cordova-test-mytest" />
		</feature>
	</config-file>
	<config-file parent="/" target="AndroidManifest.xml"></config-file>
	<source-file src="src/android/cordova-test-mytest.java" target-dir="src/test/mytest/cordova-test-mytest" />
</platform>
      
      



, , , cordova-test-mytest.java source-file.





  1. src android, cordova-test-mytest.java.





public class cordova-test-mytest extends CordovaPlugin {
        @Override
        public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
            if (action.equals("coolMethod")) {
                String message = args.getString(0);
                this.coolMethod(message, callbackContext);
                return true;
            }
            return false;
        }

        private void coolMethod(String message, CallbackContext callbackContext) {
            if (message != null &amp;&amp; message.length() > 0) {
                callbackContext.success(message);
            } else {
                callbackContext.error("Expected one non-empty string argument.");
            }
        }
}
      
      



, , " ".





, . , , , package.json . , ? :





plugman createpackagejson .







package.json , , . , package.json , :





cordova plugin add ../cordova-test-mytest







, .





:





cordova.plugins.cordova-test-mytest.coolMethod('just string example', successMtd, errorMtd);

function successMtd(message) {
    alert(message);
}

function errorMtd(message) {
    alert('Error! '+message);
}

      
      



coolMethod() execute() cordova-test-mytest. action, cordova - . cordova-test-mytest.js, if() execute() - .





JSON - args, args.getString(0).





" " coolMethod(), . , . callbackContext , callback-, execute() coolMethod(). , , .





, " " . , , , . . JavaScript- successMtd() errorMtd().





alert "just string example", , coolMethod. coolMethod(), alert, errorMtd() - "Error! Expected one non-empty string argument".





, . , - .





  1. - . - , . , :





cordova plugin remove plugin.name







:





cordova plugin add ../plugin_path







  1. BAT- ( Windows ) - , BAT . , . .





, , , .





  1. - cordova , . , , - . ARM.





  2. ( , ) JS. JS , " - ". , , .





  3. , Android - , , .












All Articles