Передать переменные из Objective-C в функцию JavaScript? - PullRequest
7 голосов
/ 01 февраля 2012

У меня есть простая функция JavaScript, которая принимает две переменные. Мне нужно передать две переменные, которые у меня уже есть в моем приложении Objective-C (iOS), этой функции javascript. Моя строка кода для запуска JavaScript:

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

Функция javascript просто применяет две переменные к форме HTML и отправляет ее. Я конечно получаю неопределенный в моей форме, так как переменные отсутствуют. 8-) Я не смог найти много документации по этому вопросу, но, возможно, я смотрю не в том месте?

FWIW, мои переменные Objective-C являются строками. Моя функция JavaScript onscan(a,b)

UPDATE:

Мне удалось добиться этого, поместив одинарные кавычки вокруг каждой переменной, передаваемой в функцию javascript. Обновленный код:

[webView stringByEvaluatingJavaScriptFromString:@"onScan('%@','%@')",a,b];

1 Ответ

10 голосов
/ 01 февраля 2012

stringByEvaluatingJavaScriptFromString: занимает NSString, поэтому все, что вам нужно сделать, это объединить строки, используя stringWithFormat: и средство форматирования %@, как показано ниже:

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

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

[webView stringByEvaluatingJavaScriptFromString:javascriptString];

Ознакомьтесь с документацией Apple для NSString это безумно полезный объект!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...