Вы можете использовать функцию
stringByEvaluatingJavaScriptFromString
для запуска метода javascript из цели c и получения возвращаемого значения из этого метода.
Например
//Calling the getTheUsername in the javascript.
NSString *userName = [yourWebView stringByEvaluatingJavaScriptFromString:@"getTheUsername()"];
и в javascript
//Method in javascript
function getTheUsername()
{
return userNameVariable;
}
И я сомневаюсь, что здесь вы можете захотеть сделать наоборот (вызовите метод obj-c из javascript),Это не может быть сделано напрямую, вот как это можно обойти.
Установите UIWebViewDelegate и реализуйте метод webView: shouldStartLoadWithRequest: navigationType :.В своем коде JavaScript перейдите к некоторому фальшивому URL-адресу, который кодирует информацию, которую вы хотите передать в свое приложение, например, скажем: window.location = "someLink: // yourApp / form_Submitted: param1: param2: param3";В вашем методе делегата найдите эти поддельные URL-адреса, извлеките необходимую информацию, выполните все необходимые действия и верните НЕТ, чтобы отменить навигацию.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
NSLog(@"%@",[[request URL] query]);
return YES;
}