У меня есть некоторые значения, сгенерированные из моего собственного кода, которые я хотел бы передать в phonegap. Эти данные генерируются в режиме реального времени и не зависят напрямую от действий пользователя через графический интерфейс phonegap. Мой собственный код является частью плагина, который я сделал.
Как лучше всего подойти к этому? Я хочу иметь функцию для отправки данных в любое время и иметь слушателя на стороне кордовы. Я использую Cordova 1.5 с Xcode 4.3.
Вот что у меня есть:
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>...
пролистнуть.ч:
...
@interface swipe : CDVPlugin
- (void) nativeFunction:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
@end
пролистнуть.м:
...
- (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]];
}
...
В коде, который у меня есть сейчас, нет ничего для того, чтобы делать то, что я хочу. Я не совсем уверен, как настроить код как в Cordova, так и в родном.