Así que básicamente estoy implementando la forma típica de manejar llamadas de JavaScript en objc usando window.location = "myobj: mymethod: myarg: myotherarg", sin embargo, me pregunto si hay una manera de aplicar una matriz de argumentos a un método, similar a cómo puedes hacerlo en JavaScript.¿Hay JavaScript como método de aplicación en Objective-C?
Normalmente he estado haciendo
-(void) mymethod:(NSArray*) arr{
//method knows how many arguments it takes and what they mean at each index
}
preferiría hacer:
-(void) mymethod:(NSString*) myarg myOtherArg: (NSString*) myotherarg{
//do stuff
}
y tener un método como este:
+(void) callMethod:(NSString*)selectorName withArgs: (NSArray*)args onObject:(id) obj{
//implementation
}
[JEHelpers callMethod:selector withArgs:someArrayOfArgs onObject:myapp]
es esto posible?
Sí ... pero el punto es ser capaz de aplicar un conjunto dinámico de argumentos a un método, de la misma manera que la función JS apply, para crear un puente muy limpio entre las llamadas a la función WebView JS al objetivo nativo- C métodos. Así que, básicamente, podría tener otra clase de Objective-C llamada JSFunctionMethods, que duplicaría la API de las llamadas JS en mi API de JS que implemento en mi webview. Gracias por su aporte, y espero haber aclarado mejor. –
@Jesse Acabo de publicar eso mientras recuerdo cómo usar 'NSInvocation'.Ver mi adición (o la respuesta de @ Andrew). – ughoavgfhw
¡Oh, esto es increíble! ¡Gracias! –