Мне нужно реализовать некоторые функции, которые запускают действие в интервале и возвращают результаты обратно в javascript.
Для упрощения я буду использовать пример эха из документации PhoneGap:
- (void)echo:(CDVInvokedUrlCommand*)command
{
[self.commandDelegate runInBackground:^{
CDVPluginResult* pluginResult = nil;
NSString* echo = [command.arguments objectAtIndex:0];
if (echo != nil && [echo length] > 0) {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo];
} else {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
}
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}];
}
Я хочу сделать этот вызов одним и тем же обратным вызовом с эхом каждую секунду, пока не будет вызван stop
.
Я создал таймер, который вызывает другую функцию каждую секунду, но я не знаю, как сохранить контекст обратного вызова для отправки результата.
//Starts Timer
- (void)start:(CDVInvokedUrlCommand*)command
{
[NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(action:)
userInfo:nil
repeats:YES];
}
//Called Action
-(void)action:(CDVInvokedUrlCommand*)command
{
[self.commandDelegate runInBackground:^{
NSLog(@"TRIGGERED");
}];
}
Любая помощь в сохранении этого в контексте обратного вызова была бы отличной. Спасибо!