Activa las notificaciones push PhoneGap Spain

Foro

Home Forums PhoneGap Cámara funciona en la app de Phonegap pero no al compilar

This topic contains 6 replies, has 2 voices, and was last updated by Aeon Aeon 5 horas, 6 minutos .

Viendo 7 respuestas - de la 1 a 7 (de 7 en total)
  • Cámara funciona en la app de Phonegap pero no al compilar

    Intervenciones
  • G
    G 
    Participant

    Estimados, como no encontré nada tan específico al inconveniente que estoy teniendo, creo este hilo para ver si me pueden ayudar, y a la vez ayudar a otros que puedan estar pasando por situaciones similares.

    Trataré de resumir:

    Estoy desarrollando una app donde una de sus funciones es el uso de la cámara.
    He hecho todo el desarrollo y lo vengo probando con la app de phonegapp tanto en android como iOs, y hasta el momento funciona a la perfección.
    Vale aclarar que cuando se instala la app de phonegap en Android e iOs por defecto la misma solicita todos los permisos del dispositivo: gps, internet, archivos, contactos, cámara, micrófono, vibrador, etc. Por eso es que al correr tu propia app sobre phonegap en el dispositivo no solicita ningún permiso adicional (al menos esa es mi experiencia).

    El problema está cuando compilo y corro la app en Android e iOs sin usar la app de Phonegap. Ahí me doy cuenta que muchas de las funcionalidades que uso en la app están bien (como GPS, internet, grabar archivos, etc), pero la que no me está funcionando es la de la cámara.
    Cuando voy a instalar la app en Android, me muestra el listado de permisos que la app requiere pero entre ellas no está la cámara.

    Al usar la app, y utilizar la función que ejecuta la cámara, la app en Android no hace nada, y en iOs la app se cierra.

    Conclusión: necesito darle permisos a la app para usar la cámara, y al momento no lo he logrado.

    Básicamente todo lo que hago en cuanto a esto es cambiar los meta en el config.xml:

    Como las siguientes líneas:

     Code: XML (select
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12.
    13.
    14.
    15.
    16.

    <feature name="http://api.phonegap.com/1.0/camera"/>

    <gap:plugin name="cordova-plugin-camera" source="npm" spec="4.0.2" />

    <platform name='ios'>
        <feature name="Camera">
          <param name="ios-package" value="CDVCamera" />
        </feature>
    </platform>

    <platform name='android'>
        <uses-permission name="android.permission.CAMERA" />
        <feature name="Camera">
          <param name="android-package" value="org.apache.cordova.CameraLauncher" />
        </feature>
    </platform>

    (vale aclarar que compilo con Phonegap Build).

    ¿Alguien me puede guiar a la solución a mi problema?

    Muchas gracias, desde Uruguay.


    Aeon
    Aeon 
    Participant

    que version de phonegap estas usando, porque esa forma de definir los plugins no se me hace de versiones recientes


    Aeon
    Aeon 
    Participant

    mira la documentacion del plugin de la camara https://www.npmjs.com/package/cordova-plugin-camera

    https://build.phonegap.com/plugins

    • This reply was modified 1 semana, 4 dias by Aeon Aeon.

    • This reply was modified 1 semana, 4 dias by Aeon Aeon.
    G
    G 
    Participant

    La forma de definir los plugins es

    1.  <gap:plugin name="cordova-plugin-camera" source="npm" spec="4.0.2" />
    En el config.xml, hay otra forma?

    Estos son algunos de los que tengo definidos:

     Code: XML (select
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12.
    13.
    14.

    <gap:plugin name="cordova-plugin-x-socialsharing" source="npm" />
        <gap:plugin name="cordova-plugin-device" source="npm" spec="1.1.4" />
        <gap:plugin name="cordova-plugin-device-orientation" source="npm" spec="1.0.5" />
        <gap:plugin name="cordova-plugin-dialogs" source="npm" spec="1.3.1" />
        <gap:plugin name="cordova-plugin-file" source="npm" spec="4.3.1" />
        <gap:plugin name="cordova-plugin-file-transfer" source="npm" spec="1.6.1" />
        <gap:plugin name="cordova-plugin-network-information" source="npm" spec="1.3.1" />
        <gap:plugin name="cordova-plugin-whitelist" source="npm" spec="~1.3.1" />
        <gap:plugin name="cordova-plugin-inappbrowser" source="npm" spec="~1.6.1" />
        <gap:plugin name="phonegap-plugin-push" source="npm" spec="~1.8.0">
            <variable name="SENDER_ID" value="XXXXXXXXXX" />
        </gap:plugin>
        <gap:plugin name="cordova-plugin-badge" source="npm" version="0.7.4" />
      <gap:plugin name="cordova-plugin-camera" source="npm" spec="4.0.2" />

    De todas formas no sé si viene por ahí el tema, ya que cuando corro la app en el Phonegap funciona a la perfección, y cuando subo a Phonegap Build para compilar, muestra que los plugins fueron detectados:

     Code: TEXT (select
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12.
    13.

    Plugin  Source  Version  Installed  Latest  Platforms
    cordova-plugin-badge     npm  0.7.4  0.7.4  n/a  android,ios,winphone
    cordova-plugin-camera     npm  4.0.2  4.0.2  n/a  android,ios,winphone
    cordova-plugin-device     npm  1.1.4  1.1.4  n/a  android,ios,winphone
    cordova-plugin-device-orientation     npm  1.0.5  1.0.5  n/a  android,ios,winphone
    cordova-plugin-dialogs     npm  1.3.1  1.3.1  n/a  android,ios,winphone
    cordova-plugin-file     npm  4.3.1  4.3.1  n/a  android,ios,winphone
    cordova-plugin-file-transfer     npm  1.6.1  1.6.1  n/a  android,ios,winphone
    cordova-plugin-inappbrowser     npm  ~1.6.1  1.6.1  n/a  android,ios,winphone
    cordova-plugin-network-information     npm  1.3.1  1.3.1  n/a  android,ios,winphone
    cordova-plugin-whitelist     npm  ~1.3.1  1.3.3  n/a  android,ios,winphone
    cordova-plugin-x-socialsharing     npm  *  5.2.1  n/a  android,ios,winphone
    phonegap-plugin-push     npm  ~1.8.0  1.8.4  n/a  android,ios,winphone

    Y me dice:

     Code: TEXT (select
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12.
    13.
    14.

    Update your config.xml with the snippet below to lock your plugins to the specific versions used in this build:

    <plugin name="cordova-plugin-badge" spec="0.7.4" />
    <plugin name="cordova-plugin-camera" spec="4.0.2" />
    <plugin name="cordova-plugin-device" spec="1.1.4" />
    <plugin name="cordova-plugin-device-orientation" spec="1.0.5" />
    <plugin name="cordova-plugin-dialogs" spec="1.3.1" />
    <plugin name="cordova-plugin-file" spec="4.3.1" />
    <plugin name="cordova-plugin-file-transfer" spec="1.6.1" />
    <plugin name="cordova-plugin-inappbrowser" spec="1.6.1" />
    <plugin name="cordova-plugin-network-information" spec="1.3.1" />
    <plugin name="cordova-plugin-whitelist" spec="1.3.3" />
    <plugin name="cordova-plugin-x-socialsharing" spec="5.2.1" />
    <plugin name="phonegap-plugin-push" spec="1.8.4" />

    Lo que no sé es por qué motivo cuando descargo el APK o el IPA y lo instalo en un dispositivo, me avisa de los permisos pero no el de la cámara… y obviamente cuando hago uso de la cámara en la app, aborta.


    G
    G 
    Participant

    Donde aborta es aquí:

     Code: Javascript (select
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.

    navigator.camera.getPicture(
                              funcionSuccessFotoPerfil,
                              funcionErrorFotoPerfil,
                              {
                                quality: 50,
                                destinationType: Camera.DestinationType.FILE_URI,
                                correctOrientation: true,
                                allowEdit: true
                              }
                            );

    Cuando llega a este punto debería abrirse la cámara, pero no lo hace (es luego de compilar, en la app de Phonegapp funciona perfectamente).
    Descarto que sea la función funcionSuccessFotoPerfil ya que esta se llama luego de sacar la foto, pero no llego a ese punto. Y la función funcionErrorFotoPerfil actualmente la tengo vacía, por lo que tampoco es eso.

    Pero como decía anteriormente, he dejado de revisar el código JS por dos motivos: (1) es prácticamente igual a los ejemplos de la documentación oficial, y (2) lo más importante es que cuando instalo la app compilada, no muestra que tenga permisos para acceder a la cámara. Y ahí es donde estoy casi seguro que tengo el inconveniente.

    He intentado con desinstalar e instalar el plugin unas 400 veces mas o menos, y tal como decía Einstein “Locura es hacer lo mismo una vez tras otra y esperar resultados diferentes”…


    Aeon
    Aeon 
    Participant

    ya estuve viendo el problema que comentas y tienes razon no lanza la camara cuando se compila:

     Code: arbitrary (select
    1.
    2.

    PhoneGap (iOS / Android / Windows)
    cli-6.5.0 (4.3.1 / 6.1.2 / 4.4.3)

    con esta compilación el plugin de la camara 4.0.2 no es compatible por eso no se instala el plugins, el mas reciente que te sirve para esa seria la version 2.4.1


    Aeon
    Aeon 
    Participant

    o actualiza tu app para la funcion 7.0.1 o la 8.0.0 que estan disponibles en el build


Viendo 7 respuestas - de la 1 a 7 (de 7 en total)

You must be logged in to reply to this topic.