Tengo algunos valores generados desde mi código nativo que me gustaría pasar a phonegap. Estos datos se generan en tiempo real y no se ven directamente influenciados por las acciones del usuario a través de la guía telefónica. Mi código nativo es parte de un complemento que hice.pasando el valor del código nativo de iOS a cordova
¿Cuál es la mejor manera de abordar esto? Quiero tener una función para enviar datos en cualquier momento y tener un oyente en el lado de cordova. Estoy usando Cordova 1.5 con Xcode 4.3.
Esto es lo que tengo hasta ahora:
swipe.js:
var swipe={
callNativeFunction: function (success, fail, resultType) {
return Cordova.exec(success, fail,
"ca.swipe",
"nativeFunction",
[resultType]); }
};
index.html:
...
function callNativePlugin(returnSuccess) {
swipe.callNativeFunction(nativePluginResultHandler, nativePluginErrorHandler, returnSuccess);
}
function nativePluginResultHandler (result) {
alert("SUCCESS: \r\n"+result);
}
function nativePluginErrorHandler (error) {
alert("ERROR: \r\n"+error);
} ... <body onload="onBodyLoad()"> <h1>Hey, it's Cordova!</h1>
<button onclick="callNativePlugin('success');">Success</button>
<button onclick="callNativePlugin('error');">Fail</button>
</body> ...
swipe.h:
...
@interface swipe : CDVPlugin
- (void) nativeFunction:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
@end
banda magnética .m:
...
- (void) nativeFunction:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options {
NSLog(@"Hello, this is a native function called from PhoneGap/Cordova!");
//get the callback id
NSString *callbackId = [arguments pop];
NSString *resultType = [arguments objectAtIndex:0];
NSMutableArray *GlobalArg=arguments;
CDVPluginResult *result;
if ([resultType isEqualToString:@"success"]) {
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: @"Success :)"];
//writes back the smiley face to phone gap.
[self writeJavascript:[result toSuccessCallbackString:callbackId]];
}
...
El código que tengo ahora no tiene nada para hacer lo que quiero. No estoy seguro de cómo configurar el código en cordova y nativo.
El enfoque que describes parece una forma muy razonable de hacerlo, ¿es la única pregunta o tienes problemas para hacerlo funcionar? – Brian
@rhooligan Tengo problemas para hacerlo funcionar, no estoy muy familiarizado con Objective-C y su interacción con Phonegap. Sería genial tener un ejemplo de algún tipo. ¡Gracias! – mugetsu
¿Puedes publicar tu código de Objective-C y luego mostrarnos tu código de Cordova? Escribí algunos complementos cuando aún se llamaba PhoneGap y hay algunas cosas específicas que tenía que hacer en el paquete, así como también una secuencia de inicio a la que tenía que llamar desde JS. Sin embargo, el sistema puede haber sufrido algunos cambios desde entonces. – Brian