objective-c 和js之间可以通过json来传递数据。
objective-c的数据要转换为json,可以借助开源代码:SBJSON,它提供了一个 NSObject+SBJson 类,即为所有的NSObject类(包括子类)提供了转换为JSON数据的方法。比如,我们需要传递一个BOOL值给js,可以如下:
NSArray *args = [NSArray arrayWithObject:[NSNumber numberWithBool:NO]];
NSString *resultArrayString = [argsJSONRepresentation];
通过UIWebView方法:stringByEvaluatingJavaScriptFromString:调用js函数时将resultArrayString作为参数,在js代码中,就可以直接判断了,比如:
[webViewInstance stringByEvaluatingJavaScriptFromString:[NSStringstringWithFormat:@"testCallback(%@);"resultArrayString]];
js代码:
function testCallback(isOrNot) {
if (isOrNot) {
// ToDo
} else {
// ToDo
}
}
其他类型的参数传递同理了,主要是熟悉JSON的数据格式即可,在调试过程中,可打印生成的JSON数据来判断是否生成了js需要的数据。