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:
- Icono de notificación en blanco para Android con Phonegap Build y PushPlugin
- Android no funciona mientras lista los objetivos de Android
- Phonegap obtener contenido de un archivo PDF
- Crosswalk Cordova Android múltiples archivos select
- Vídeo como imagen de fondo ionic app
- 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>
- JQuery detecta si se mantiene pulsada la tecla del teclado
- Cuando emule Ionic App lanza TypeError: No se puede llamar al método undefined
- PhoneGap Build no construirá para Android con PushPlugin
- ¿Por qué phonegap-facebook-plugin está causando fallas en mi build de phonegap?
- Cómo desactivar gradle en Córdoba?
- Establecer cookies de forma programática en Crosswalk WebView en Android
- Cómo utilizar Phonegap Android Plugin de notificación local
- Cómo convertir una aplicación web Angular1 existente en una aplicación Cordova?
Lista de verificación: ¿Su complemento está cargado?
- ¿Su
index.html
carga el scriptcordova.js
? (Es decir, si usted tienewww/index.html
entonces sólo puede hacer referencia acordova.js
. Este archivo no está en el directoriowww
, 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 deplugins
con scripts,cordova_plugins.js
debe mencionar su plugin, uncordova.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:
- Los
file
,file-transfer
ycamera
complementos decamera
dependen del plugincompat
; Por lo quecompat
necesita ser eliminado en último lugar. - El complemento de
file-transfer
defile
depende delfile
, por lo que elfile
debe eliminarse primero.