Итак, я пытаюсь понять, как работает JavascriptCore.Javascriptcore ios вызывает метод класса
Итак, сначала я попытался вызвать одну функцию, но теперь я пытаюсь вызвать функцию внутри класса.
Мой Javascript код выглядит следующим образом
var sayHelloAlfred = function()
{
log("Hello Alfred");
}
var testClass = function()
{
this.toto = function()
{
log("Toto in class");
}
}
var testObject = {
toto : function()
{
log("Toto in object");
}
}
И мой ViewController код:
- (void)viewDidLoad {
[super viewDidLoad];
_context = [[JSContext alloc] initWithVirtualMachine:[[JSVirtualMachine alloc] init]];
_context[@"log"] = ^(NSString *text) {
NSLog(@"%@", text);
};
NSString *scriptFilePath = [[NSBundle mainBundle] pathForResource:@"main" ofType:@"js"];
NSString *scriptFileContents = [NSString stringWithContentsOfFile:scriptFilePath encoding:NSUTF8StringEncoding error:nil];
[_context evaluateScript:scriptFileContents];
}
- (IBAction)doStuff:(id)sender
{
[_context[@"sayHelloAlfred"] callWithArguments:@[]]; // Works
[_context[@"testClass"] invokeMethod:@"toto" withArguments:@[]]; // Doesn't work
[_context[@"testObject"] invokeMethod:@"toto" withArguments:@[]]; // Works
}
Моя проблема заключается в том, что она отлично работает с одной функции и функции в объекте, но не с этим в функции.
Знаете ли вы, что это правильное поведение JavaScriptCore или если я что-то делаю неправильно?
Большое спасибо!