2011-11-29 15 views
8

Estoy tratando de usar el complemento PhoneGap Share, que se supone que abre la ventana "Compartir" nativa de Android, que permite al usuario elegir qué aplicación compartir.Android - Cómo usar el complemento PhoneGap Share

https://github.com/phonegap/phonegap-plugins/tree/master/Android/Share

que tienen un hipervínculo que llama al siguiente código (proporcionado en github).

window.plugins.share.show({ 
    subject: 'I like turtles', 
    text: 'http://www.mndaily.com' 
}, 

function() {}, // Success function 
function() { 
    alert('Share failed') 
} // Failure function); 

Cuando se trata de depurar la aplicación en mi teléfono, me sale el siguiente error:

No se puede llamar al método 'show' de indefinido en file: ///android_asset/www/index.html

¿Qué debo hacer para que esto funcione?

Respuesta

9

Me he enfrentado el mismo problema hoy. Hice que funcione usando el siguiente código en lugar del window.plugins cosa:

var share = new Share(); 
share.show({ 
    subject: 'I like turtles', 
    text: 'http://www.mndaily.com'}, 
    function() {}, // Success function 
    function() {alert('Share failed')} // Failure function 

); 
+0

¡Gracias por esto! –

+0

¡Esto también me ayudó! – skybondsor

0

El error indica que el objeto window.plugins no tiene una "propiedad compartida".

Compruebe que siguió el installation steps del complemento para compartir y que agregó la carga del archivo share.js en su index.html, algo que los pasos de instalación omiten para informarle.

+0

Creo que he seguido los pasos correctamente. Agregué el archivo Share.java a /src/com.schaul.plugins.share, agregué el archivo share.js a my/assets/www, y he llamado este script desde mi index.html. ¿Estoy entendiendo mal el paso "Agregar código Java a la fuente de compilación del proyecto?" Soy nuevo en Eclipse y Java, así que no estoy seguro de lo que esto significa, y no puedo encontrar respuestas claras en ninguna parte. –

3

Esto es lo que puede hacer ...

  • Añadir a plugins.xml:

    <plugin name="Share" value="com.schaul.plugins.share.Share"/ > 
    
  • Guardar share.js a \assets\www\

  • De index.html, llaman

    <script type="text/javascript" charset="utf-8" src="share.js" ></script> 
    
  • Añadir Share.java a \src\com.schaul.plugins.share
    que es: src \ com \ Schaul \ plugins \ share \ Share.java

  • En index.html, llame al código siguiente después del PhoneGap .1.2.0.js y share.js archivos se cargan:

llamada el código que se menciona Petroy ...

var share = new Share(); 
share.show({ 
    subject: 'I like turtles', 
    text: 'http://www.mndaily.com'}, 
    function() {}, // Success function 
    function() {alert('Share failed')} // Failure function 

); 

Sepamos funciona ...

+1

una mejor explicación para utilizar el complemento para compartir. Pero plugins.xml ha cambiado a config.xml, por lo tanto, uno pone el código xml dentro de las etiquetas config.xml ->. – isa

Cuestiones relacionadas