Disco
Disco

Reputation: 4386

How to implement a callback with phonegap

Working on some testing with phonegap on iphone; i have a plugin that returns simpl json data like this :

NSString* retStr = [[NSString alloc] 
  initWithFormat:@"%@({ code: '%@', image: '%@' });", 
  resultText.text,resultImage.image];                       

[ webView stringByEvaluatingJavaScriptFromString:retStr ];  

And my call from JS :

var mydata = PhoneGap.exec("MyModile.myFunction", 'mycallback'); 

function mycallback (data) { alert (data); }

Doesn't produce anything upon the return.

Any idea ?

Upvotes: 1

Views: 2649

Answers (2)

saltandpepper
saltandpepper

Reputation: 1047

As a reply to your comment on Aaron Saunders:

Take a look at this wiki: http://wiki.phonegap.com/w/page/36753496/How%20to%20Create%20a%20PhoneGap%20Plugin%20for%20iOS

Your native plugin method should have a parameter called arguments, which is 'filled' by the calling cordova.exec function.

Upvotes: 0

Aaron Saunders
Aaron Saunders

Reputation: 33345

// get the callback from the arguments
NSString * jsCallback = [arguments objectAtIndex:0];

// create the string
NSString* retStr = [[NSString alloc] 
    initWithFormat:@"%@({ code: '%@', image: '%@' });", 
                                jsCallback,resultText.text,resultImage.image];  

//execute
[ webView stringByEvaluatingJavaScriptFromString:retStr ]; 

Upvotes: 1

Related Questions