- 关键步骤:
- 在Objective - C端,需要将
NSArray
转换为JSValue
对象,这是因为JavaScriptCore框架中,Objective - C与JavaScript交互通过JSValue
来传递数据。
- 创建
JSContext
对象,它是Objective - C与JavaScript交互的上下文环境。
- 将转换后的
JSValue
对象传递给JavaScript代码,并在JavaScript端接收和使用。
- 代码示例:
#import <JavaScriptCore/JavaScriptCore.h>
// 创建一个NSString类型字符串的NSArray
NSArray *stringArray = @[@"apple", @"banana", @"cherry"];
// 创建JSContext
JSContext *context = [[JSContext alloc] init];
// 将NSArray转换为JSValue
JSValue *jsArray = [JSValue valueWithObject:stringArray inContext:context];
// 在JavaScript中执行代码,并传递数组
context[@"jsFunction"] = ^(JSValue *arg) {
NSLog(@"JavaScript function called with argument: %@", arg);
};
context[@"jsArray"] = jsArray;
[context evaluateScript:@"jsFunction(jsArray)"];
- JavaScript代码(在Objective - C中通过
evaluateScript
执行):
function jsFunction(arr) {
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
}