Los complementos de Cordova no funcionan

Edición para aclaración: El <name> que ves en algunos de los archivos a continuación no forma parte de los archivos, pero incluye el nombre de la empresa que tuve que censurar.

Situación de la prueba:

  • Córdoba 4
  • OS X Yosemite
  • Dispositivo Android 4.4 (acoplado con USB)
  • Usando Terminal; No eclipse

Qué pasa: El uso de cordova run --release genera y firma con éxito cordova run --release y el dispositivo móvil lo instala y lo abre sin problemas. Pero, ninguno de los complementos funcionan. Por ejemplo:

  title.on('click', function() { if (!navigator.camera) { alert('no camera!'); } else { navigator.camera.getPicture(function success(data) { // do something }, function error(data) {}); } }); 

Siempre alerta de que no hay cámara, lo que significa que Cordova no agregó un objeto de camera objeto window.navigator .

A continuación se muestra información sobre mi instalación cordova y algunos archivos xml, por lo que puedo decir nada parece fuera de lugar. Tenga en cuenta que no es sólo la cámara que no funciona, sólo lo usé como un ejemplo.

Córdoba información:

 Node version: v0.10.29 Cordova version: 4.0.1-nightly.2014.9.29 Config.xml file: <?xml version='1.0' encoding='utf-8'?> <widget id="com.<name>.App" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <name><name> Mini</name> <description> De <name> app voor je telefoon </description> <author email="stephan@<name>.nl" href="https://<name>.nl"> Het <name> Team </author> <content src="index.html" /> <access origin="*" /> <preference name="SplashScreen" value="screen" /> <preference name="SplashScreenDelay" value="2000" /> </widget> Plugins: org.apache.cordova.camera,org.apache.cordova.dialogs,org.apache.cordova.file,org.apache.cordova.file-transfer,org.apache.cordova.media,org.apache.cordova.media-capture,org.apache.cordova.splashscreen,org.apache.cordova.vibration Android platform: Available Android targets: ---------- id: 1 or "android-19" Name: Android 4.4.2 Type: Platform API level: 19 Revision: 4 Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in Tag/ABIs : default/armeabi-v7a, default/x86 

Cordova / config.xml

 <?xml version='1.0' encoding='utf-8'?> <widget id="com.<name>.App" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <name><name> Mini</name> <description> De <name> app voor je telefoon </description> <author email="stephan@<name>.nl" href="https://<name>.nl"> Het <name> Team </author> <content src="index.html" /> <access origin="*" /> <preference name="SplashScreen" value="screen" /> <preference name="SplashScreenDelay" value="2000" /> </widget> 

Cordova / plataformas / android / AndroidManifest.xml <

 ?xml version='1.0' encoding='utf-8'?> <manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="com.kaartje2go.App" xmlns:android="http://schemas.android.com/apk/res/android"> <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="CordovaApp" android:theme="@android:style/Theme.Black.NoTitleBar" android:windowSoftInputMode="adjustResize"> <intent-filter android:label="@string/launcher_name"> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.RECORD_VIDEO" /> <uses-permission android:name="android.permission.VIBRATE" /> </manifest> 

Cordova / plataformas / android / res / xml / config.xml

 <?xml version='1.0' encoding='utf-8'?> <widget id="com.<name>.App" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <preference name="loglevel" value="DEBUG" /> <feature name="Camera"> <param name="android-package" value="org.apache.cordova.camera.CameraLauncher" /> </feature> <feature name="Notification"> <param name="android-package" value="org.apache.cordova.dialogs.Notification" /> </feature> <feature name="File"> <param name="android-package" value="org.apache.cordova.file.FileUtils" /> <param name="onload" value="true" /> </feature> <feature name="FileTransfer"> <param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" /> </feature> <feature name="Media"> <param name="android-package" value="org.apache.cordova.media.AudioHandler" /> </feature> <feature name="Capture"> <param name="android-package" value="org.apache.cordova.mediacapture.Capture" /> </feature> <feature name="SplashScreen"> <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" /> </feature> <feature name="Vibration"> <param name="android-package" value="org.apache.cordova.vibration.Vibration" /> </feature> <name><name> Mini</name> <description> De <name> app voor je telefoon </description> <author email="stephan@<name>.nl" href="https://<name>.nl"> Het <name> Team </author> <content src="index.html" /> <access origin="*" /> <preference name="SplashScreen" value="screen" /> <preference name="SplashScreenDelay" value="2000" /> </widget> 

Lista de verificación: ¿Su complemento está cargado?

  • ¿Su index.html carga el script cordova.js ? (Es decir, si usted tiene www/index.html entonces sólo puede hacer referencia a cordova.js . Este archivo no está en el directorio www , pero generado automáticamente por Cordova e insertado en su aplicación)
  • ¿Está cargado el plugin javascript? Usa Chrome o Safari para depurar remotamente tu aplicación de Android / iOS.
  • cordova plugin ls : ¿Su plugin está en la lista?
  • plugins/android.json : ¿Su complemento está listado?
  • ¿Las platforms/android/assets/www tienen todos los archivos? (Es decir, una carpeta de plugins con scripts, cordova_plugins.js debe mencionar su plugin, un cordova.js plataforma específica)

¿Puedes escuchar el evento deviceready para comprobar si Cordova se deviceready en absoluto? (Si todas las secuencias de comandos están en su lugar)

Si sus complementos no funcionan, también puede probar estos pasos:

 cordova plugin list; cordova plugin remove my-cordova-plugin --save; cordova plugin add my-cordova-plugin --nosave; 

También tenga en cuenta las siguientes dependencias de complementos:

  1. Los file , file-transfer y camera complementos de camera dependen del plugin compat ; Por lo que compat necesita ser eliminado en último lugar.
  2. El complemento de file-transfer de file depende del file , por lo que el file debe eliminarse primero.
  • Phonegap: guarda la imagen de la url en la galería de fotos del dispositivo
  • PhoneGap abrir documentos desde el sitio web
  • Phonegap instancia única
  • Cordova for android: Se produjo un error al escuchar los objetivos de Android
  • Cordova y crashlytics beta script de construcción
  • Devoluciones de llamada de Android InAppBrowser _system
  • Añadir android: nombre = "algo" a AndroidManifest.xml etiqueta "aplicación" de Cordova plugin.xml
  • config.xml problema de formato
  • Phonegap uso de la aplicación android cpu en el fondo
  • Instalar manualmente el plugin Device (y otros) en cordova 3.0
  • PhoneGap es una buena opción para el desarrollo de aplicaciones?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.