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:
- Phonegap: cómo reproducir sonido en android para una notificación push
- Phonegap ejecutar android - crear Comando falló con código de salida 8 - linux
- window.innerHeight vs window.outerHeight para calcular la densidad?
- Window.plugins indefinido al intentar utilizar los complementos phonegap en android
- La aplicación Build con Herramientas para Apache Cordova falla
- 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>
- Sqlite sincrónico
- ReferenceError: La cámara no está definida
- Phonegap: FileTransfer.upload () falla en Android
- Error en la aplicación Phonegap: módulo no capturado cordova / plugin_list ya definido
- PhoneGap El volumen del evento y el botón volumedownbutton no funcionan
- No se puede leer la propiedad 'getPicture' de undefined - cámara iónica
- Añadir android: nombre = "algo" a AndroidManifest.xml etiqueta "aplicación" de Cordova plugin.xml
- Origen nulo no está permitido por Access-Control-Allow-Origin.:1 en la vista web android?
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.