Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pass variables from Objective-C to javascript function?

I have a simple javascript function that takes two variables. I need to pass two variables that I already have in my Objective-C (iOS) application to this javascript function. My line of code to run the javascript is:

[webView stringByEvaluatingJavaScriptFromString:@"onScan()"];

The javascript function just applies the two variables to a HTML form and submits it. I'm of course getting undefined in my form since the variables are missing. 8-) I've been unable to find much documentation on this, but maybe I'm looking in the wrong places?

FWIW, my Objective-C variables are strings. My javascript function is onscan(a,b)

UPDATE:

I was able to get this working by placing single quotes around each of the variables being passed to the javascript function. The updated code is:

[webView stringByEvaluatingJavaScriptFromString:@"onScan('%@','%@')",a,b];
like image 771
Donavon Yelton Avatar asked Feb 01 '12 17:02

Donavon Yelton


1 Answers

stringByEvaluatingJavaScriptFromString: takes an NSString so all you have to do is combine strings using stringWithFormat: and the %@ object formatter like below:

NSString *stringOne = @"first_parameter";
NSString *stringTwo = @"second_parameter";

NSString *javascriptString = [NSString stringWithFormat:@"onScan('%@','%@')", stringOne, stringTwo];

[webView stringByEvaluatingJavaScriptFromString:javascriptString];

Check out Apple's documentation for NSString, it's an insanely useful object!

like image 62
Jack Lawrence Avatar answered Nov 06 '22 09:11

Jack Lawrence