Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android - How to use the PhoneGap Share plugin

I am trying to use the PhoneGap Share plugin which is supposed to bring up the native Android "Share" window which allows the user to pick which application to share to.

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

I have a hyperlink which calls the following code (provided on github).

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

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

When trying to debug the app on my phone, I get the following error:

Cannot call method 'show' of undefined at file:///android_asset/www/index.html

What do I need to do to get this to work?

like image 784
Doctuh D. Avatar asked Nov 29 '11 04:11

Doctuh D.


2 Answers

I have faced the same problem today. I made it work using the following code instead of the window.plugins thing:

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

);
like image 128
Petroy Avatar answered Oct 16 '22 06:10

Petroy


This is what you can do...

  • Add to plugins.xml:

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

  • From index.html, call

    <script type="text/javascript" charset="utf-8" src="share.js" ></script>
    
  • Add Share.java to \src\com.schaul.plugins.share
    that is: src\com\schaul\plugins\share\Share.java

  • In index.html, call the following code after the phonegap.1.2.0.js and share.js files are loaded:

Call the code that Petroy mentioned...

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

);

Let us know it works...

like image 26
Darren Avatar answered Oct 16 '22 04:10

Darren